欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

CEF離屏渲染(OSR)高性能實(shí)現(xiàn)與調(diào)優(yōu)指南

CEF離屏渲染(OSR)高性能實(shí)現(xiàn)與調(diào)優(yōu)指南 簡介在 CEF 離屏渲染開發(fā)中性能瓶頸往往集中在紋理傳輸與合成環(huán)節(jié)尤其是在多窗口、復(fù)雜頁面和 GPU 加速場景下。這份示例工程面向需要借助 D3D11 共享紋理優(yōu)化 OSR 渲染效果的開發(fā)者圍繞官方建議的 OnAcceleratedPaint() 回調(diào)展開演示了從 GPU 表面獲取渲染結(jié)果、完成混合與合成的完整過程可有效改善復(fù)雜 HTML 內(nèi)容下的渲染流暢度與響應(yīng)速度。資源包體積僅 137KB共 32 個(gè)文件主體為 C 源碼同時(shí)包含多套 CMake 構(gòu)建腳本、Windows 批處理命令、補(bǔ)丁文件、說明文檔及少量資源文件結(jié)構(gòu)緊湊便于對照工程生成、代碼閱讀與二次改造。當(dāng)前已有 77 人瀏覽學(xué)習(xí)。除核心混合器與合成器實(shí)現(xiàn)外資源還覆蓋 VS2017/VS2019 工程生成腳本、FindCEF 模塊查找方式、共享紋理問題補(bǔ)丁和許可證說明適合準(zhǔn)備在桌面應(yīng)用中嵌入網(wǎng)頁、希望繞開離屏渲染兼容性坑點(diǎn)的中高級 CEF 開發(fā)者。1. 離屏渲染不是新東西但 CEF 的 OSR 總被人用成低性能如果你需要在游戲引擎里嵌一個(gè)設(shè)置界面、在直播工具里放一塊可交互的 Web 面板、或者在自研渲染器里塞進(jìn)完整的 Chromium最直接的辦法不是把瀏覽器窗口釘在你的窗口上而是讓 Chromium 把每一幀的像素直接交到你手里——這就是 CEF 的離屏渲染OSR。這個(gè)演示 zip 里打包的東西本質(zhì)上就是一套「怎么把 CEF 的 OSR 跑起來并且跑得不像玩具」的最小工程。說它高性能是因?yàn)槟J(rèn)的 OnPaint 回調(diào)拿到的位圖直接拷給 GPU 的方式在大分辨率下會把 CPU 打滿真正能用的方案要繞開這條路。這篇筆記面向兩類人一類是第一次接 CEF想知道 OSR 和普通窗口模式差在哪另一類是已經(jīng)在用 OSR 但被幀率、黑屏、輸入法坑到懷疑人生的。我按自己做過的落地路徑來拆從原理到代碼到參數(shù)到排錯。2. 選型與原理為什么 OSR 能嵌進(jìn)任何渲染管線以及性能從哪來2.1 三種嵌入瀏覽器的方案對比窗口句柄嵌入、窗口重父化、OSR常見做法是把瀏覽器內(nèi)容裝進(jìn)自己的應(yīng)用大致有三條路。第一種是在宿主窗口里創(chuàng)建了一個(gè)子窗口把 CEF 的瀏覽器窗口直接掛進(jìn)去SetAsChild這個(gè)方案最簡單瀏覽器自己處理輸入、繪制、IME完全不用你管。缺點(diǎn)是它是個(gè)真正的系統(tǒng)窗口你的渲染引擎沒法對它做變換、裁剪、混合去不掉彈窗和陰影跨平臺表現(xiàn)也不一致。第二種是窗口重父化把瀏覽器的原生窗口 reparent 到你的窗口層級里本質(zhì)上還是窗口模式只是換了個(gè)爹邊框和焦點(diǎn)問題依然存在。OSR 是第三條路瀏覽器不創(chuàng)建可見窗口Chromium 內(nèi)部照常布局、繪制、合成最終把像素?cái)?shù)據(jù)通過回調(diào)交給你。你可以把這堆像素貼到 3D 物體表面、寫進(jìn)視頻幀、或者和自研 UI 做統(tǒng)一混合。代價(jià)是輸入事件、焦點(diǎn)管理、IME、拖拽這些本來由系統(tǒng)窗口幫你做的事全都要你手動轉(zhuǎn)發(fā)給 CEF。三種方案的取舍很清晰要求開發(fā)速度、不需要不規(guī)則裁剪就選窗口嵌入要嵌進(jìn) OpenGL/D3D/Vulkan 管線、要統(tǒng)一渲染就選 OSR。方案開發(fā)成本功能完整度嵌入自研渲染器典型場景窗口句柄嵌入低高不行窗口層級限制多桌面工具、IDE 面板窗口重父化低高有限位置同步麻煩老項(xiàng)目遷移OSR中高中需補(bǔ)償輸入/IME完全可控像素/紋理任取游戲 UI、視頻合成、虛擬桌面我做桌面端三年最后穩(wěn)定下來的選型套路是只要渲染引擎已經(jīng)存在、或者產(chǎn)品圖里出現(xiàn)過「任意形狀的瀏覽器窗口」就別猶豫直接 OSR。2.2 CEF 的 OSR 工作鏈路從 Chromium 合成器到你的紋理OSR 的核心是讓 Chromium 的合成器把最終畫面輸出到內(nèi)存或共享紋理再通過 CefRenderHandler 接口交給你。這里面有兩個(gè)回調(diào)最容易混淆一個(gè)是 OnPaint它給你的是 CPU 可讀的位圖數(shù)據(jù)RGBA適合小窗口、低幀率、或者你本來就做軟件渲染的場景另一個(gè)是 OnAcceleratedPaint它交給你的不是像素而是一個(gè) GPU 紋理的句柄在 Windows 上是 D3D11 共享紋理在 Linux 上是 dmabuf 文件描述符。拿到句柄后你的渲染器可以直接把它作為紋理采樣省掉了 CPU 到 GPU 的上傳。鏈路大致是這樣渲染進(jìn)程產(chǎn)生產(chǎn)出GPU 進(jìn)程做合成合成結(jié)果以紋理或位圖形式跨進(jìn)程交給瀏覽器進(jìn)程瀏覽器進(jìn)程通過 CefRenderHandler 的 OnAcceleratedPaint 或 OnPaint 拋給你。所以性能瓶頸從來不在 Chromium 本身而在你接住幀之后干了什么。很多人覺得 CEF OSR 卡其實(shí)是自己寫的 OnPaint 里在做像素格式轉(zhuǎn)換、memcpy、再通過 glTexImage2D 上傳一條流水線全是同步操作UI 線程不卡才怪。2.3 多進(jìn)程模型和用自己的子進(jìn)程到底解決什么CEF 天生是多進(jìn)程架構(gòu)主程序是 browser 進(jìn)程頁面跑在 renderer 進(jìn)程里合成和光柵化在 GPU 進(jìn)程里。這里有個(gè)關(guān)鍵設(shè)計(jì)理念browser 進(jìn)程和 renderer 進(jìn)程不是同一個(gè)可執(zhí)行文件的兩個(gè)函數(shù)而是同一個(gè)二進(jìn)制用不同命令行參數(shù)啟動后的不同角色。演示 zip 里通常只有一個(gè) exe那么你在 main 函數(shù)一開始就要判斷命令行參數(shù)如果是--typerenderer就直接調(diào) CefExecuteProcess 把自己變成渲染進(jìn)程然后退出 main否則才走正常的 UI 初始化。// main.cpp 入口分流 int main(int argc, char* argv[]) { CefMainArgs main_args(argc, argv); CefRefPtrCefApp app(new DemoApp()); // 關(guān)鍵子進(jìn)程入口必須復(fù)用同一個(gè) exe。 // 否則 CEF 會嘗試用 CefSettings.browser_subprocess_path 指定的路徑 // 找不到就起不來頁面。 int exit_code CefExecuteProcess(main_args, app.get(), nullptr); if (exit_code 0) { // 當(dāng)前進(jìn)程已經(jīng)作為 renderer/gpu 子進(jìn)程運(yùn)行完畢 return exit_code; } // 只有主進(jìn)程會走到這里 return RunBrowserProcess(main_args, app); }這段代碼解決的是一個(gè)非常現(xiàn)實(shí)的部署問題很多新手工程不寫 CefExecuteProcess 分支而是把 browser_subprocess_path 指向一個(gè)不存在或者不完整的 helper 文件結(jié)果就是瀏覽器進(jìn)程能啟動但頁面一直白屏或者崩在不起眼的地方。用自己的子進(jìn)程本質(zhì)上是讓 CEF 的多進(jìn)程模型在一個(gè)文件里自洽這在交付演示 zip 時(shí)尤其重要——少一個(gè)依賴文件就少一個(gè)翻車現(xiàn)場。參數(shù)上要注意CefSettings.browser_subprocess_path在 Windows 上必須指向包含完整 CEF 運(yùn)行時(shí)的可執(zhí)行文件Linux 下如果不設(shè)置會用 /proc/self/exe 兜底但顯式指定更穩(wěn)妥。2.4 為什么說高性能更多是策略問題幀延遲和 CPU 占用這兩個(gè)指標(biāo)在 OSR 里高度依賴你選擇的輸出路徑。純 OnPaint 路徑適合分辨率不高、幀率不高的場景OnAcceleratedPaint 路徑把像素搬運(yùn)交給 GPU 進(jìn)程和你的顯卡驅(qū)動主線程只做紋理句柄的注冊和采樣。還有一個(gè)被忽略的點(diǎn)CEF 提供 SetWindowlessFrameRate 控制瀏覽器端的幀率上限如果你不設(shè)置它默認(rèn)是 30某些版本會自適應(yīng)。你以為是瀏覽器慢其實(shí)是它被幀率上限卡住了這個(gè)參數(shù)我在下一章展開講。3. 把它跑起來最小 OSR 演示工程的關(guān)鍵代碼3.1 初始化設(shè)置讓 CEF 進(jìn)入離屏模式這一節(jié)是可抄作業(yè)的核心。CefSettings 里有幾個(gè)字段直接決定 OSR 能不能生效。第一個(gè)是windowless_rendering_enabled必須設(shè)為 true否則后續(xù) SetAsWindowless 不會進(jìn)入離屏模式。第二個(gè)是background_color如果你要的是透明背景就要設(shè)成帶 alpha 的黑色0x00000000但注意這只在 GPU 合成時(shí)保留 alpha軟件路徑下不一定生效。第三個(gè)是multi_threaded_message_loop建議保持 false讓 CEF 跑在專用線程里方便你自己控制消息泵。bool RunBrowserProcess(CefMainArgs main_args, CefRefPtrCefApp app) { CefSettings settings; settings.no_sandbox true; // 演示環(huán)境方便調(diào)試生產(chǎn)環(huán)境按需開啟 settings.windowless_rendering_enabled true; // 進(jìn)入離屏渲染模式 settings.background_color 0xFF2B2B2B; // 不透明底色透明場景用 0x00000000 settings.log_severity LOGSEVERITY_WARNING; // 日志別太吵排錯時(shí)再調(diào) VERBOSE // 子進(jìn)程路徑不設(shè)置則默認(rèn)復(fù)用當(dāng)前 exe前提是上面 main 里做了 CefExecuteProcess 分支 // settings.browser_subprocess_path demo_helper.exe; CefInitialize(main_args, settings, app.get(), nullptr); // 之后進(jìn)入消息循環(huán) CefRunMessageLoop(); CefShutdown(); return true; }邏輯說明這一段的順序是有講究的。先設(shè) no_sandbox 再設(shè) windowless是避免某些平臺上沙箱和離屏模式互相干擾background_color 要按你的 UI 底色來很多黑屏問題就是這里用了純黑不透明值而頁面背景又是深灰色混在一起以為是渲染失敗。browser_subprocess_path我注釋掉了這是故意的——如果你的 exe 已經(jīng)做了 CefExecuteProcess 分流就不需要額外 helper 文件如果沒有你才需要指定一個(gè)能完整加載 CEF 的 helper 程序。參數(shù)調(diào)整時(shí)最容易踩的坑是改了 windowless_rendering_enabled 但沒重啟進(jìn)程CEF 有些設(shè)置在運(yùn)行時(shí)是不可變的。3.2 實(shí)現(xiàn) CefRenderHandler 的四個(gè)回調(diào)OSR 的本質(zhì)就是你實(shí)現(xiàn)一個(gè) CefRenderHandler把它綁定到瀏覽器窗口上。四個(gè)回調(diào)缺一不可GetViewRect 告訴 CEF 你的渲染區(qū)域多大OnPaint 接收軟件像素OnAcceleratedPaint 接收 GPU 紋理再就是鼠標(biāo)事件轉(zhuǎn)發(fā)。前兩個(gè)回調(diào)不實(shí)現(xiàn)瀏覽器直接不畫。class DemoOSRHandler : public CefRenderHandler { public: // 告訴瀏覽器離屏畫布的尺寸邏輯像素不是物理像素 void GetViewRect(CefRefPtrCefBrowser browser, CefRect rect) override { rect CefRect(0, 0, view_width_, view_height_); } // 軟件渲染路徑拿到像素矩形列表和編碼后的 RGBA 數(shù)據(jù) void OnPaint(CefRefPtrCefBrowser browser, PaintElementType type, const RectList dirtyRects, const void* buffer, int width, int height) override { if (type ! PET_VIEW) return; // 只關(guān)心主畫面不關(guān)心彈窗氣泡等覆蓋層 // 把 buffer 拷貝到你的共享內(nèi)存/紋理上傳隊(duì)列 UploadPixelsToEngine(buffer, dirtyRects, width, height); } // GPU 路徑拿到共享紋理句柄交給渲染線程注冊 GPU 資源 bool OnAcceleratedPaint(CefRefPtrCefBrowser browser, PaintElementType type, const RectList dirtyRects, const CefAcceleratedPaintInfo info) override { if (type ! PET_VIEW) return false; // info.shared_texture_handle 或 info.fd具體取法按平臺走 AttachSharedTexture(info); return true; } private: int view_width_ 1280; int view_height_ 720; };參數(shù)說明dirtyRects 表示這次哪些區(qū)域發(fā)生了變化。如果你只需要局部刷新可以按這個(gè)矩形列表去更新渲染引擎里的對應(yīng)區(qū)域這就是高性能省帶寬的基礎(chǔ)。width 和 height 是緩沖區(qū)的實(shí)際尺寸它一定大于等于上次 GetViewRect 給的值因?yàn)楦?DPI 屏幕上會有縮放緩沖區(qū)可能是邏輯尺寸的 2 倍你要按 width/height 來算像素偏移。OnAcceleratedPaint 里的 CefAcceleratedPaintInfo 在不同平臺字段不同Windows 是 shared_texture_handleLinux 是 fd 加上尺寸信息我一般會封裝一層平臺適配把這兩種情況統(tǒng)一成自己的 TextureHandle 結(jié)構(gòu)。鼠標(biāo)和鍵盤事件也要轉(zhuǎn)發(fā)到 CefBrowserHost否則頁面完全無法交互void SendMouseEvent(CefRefPtrCefBrowser browser, int x, int y, MouseButtonType btn, bool mouseUp, int modifiers) { CefMouseEvent ev; ev.x x; // 邏輯坐標(biāo)和 GetViewRect 坐標(biāo)系一致 ev.y y; ev.modifiers modifiers; if (btn MBT_LEFT) { browser-GetHost()-SendMouseClickEvent(ev, btn, false, mouseUp); } // 滾輪事件用 SendMouseWheelEvent }邏輯說明事件坐標(biāo)必須和 GetViewRect 的定義一致否則會出現(xiàn)「鼠標(biāo)點(diǎn)不到按鈕」的靈異問題。這個(gè)坐標(biāo)是邏輯像素如果你的宿主窗口在 Windows 上開啟了 DPI 縮放系統(tǒng)給你的是物理像素要先除以縮放系數(shù)再傳進(jìn)來。modifiers 要自己拼常見錯誤是只傳左鍵不傳 Shift/Ctrl導(dǎo)致頁面的多選、新標(biāo)簽頁中打開這類交互失效。3.3 像素到渲染引擎的兩種落地方式CPU 位圖 vs GPU 共享紋理拿到像素之后怎么送進(jìn)自己的渲染引擎是決定性能的分水嶺。第一種方式適合小窗口或低幀率在 OnPaint 里直接 memcpy 到一個(gè)固定緩沖區(qū)然后在渲染線程里 glTexSubImage2D 上傳。第二種方式適合 1080p 以上、幀率要 60 的場景走 OnAcceleratedPaint 拿到共享紋理句柄通過 glImportShareHandleEXT 或 D3D11 OpenSharedResource 把紋理引入自己的圖形 API 上下文整個(gè)過程零 CPU 拷貝。路徑輸出形式CPU 開銷延遲適用場景OnPaint glTexUploadRGBA 位圖高每幀拷貝高小面板、設(shè)置頁、低交互OnAcceleratedPaint 共享紋理GPU 紋理句柄極低低視頻播放、動畫、全屏 Web 內(nèi)容我見過一個(gè)視頻渲染工具最初用 OnPaint 路線跑 4K 60fps 的 Web 頁面CPU 占用直接拉滿到 80%后來切換成 OnAcceleratedPaint降到 15%畫面還更流暢。切紋理的代價(jià)是平臺代碼陡增Windows 上要處理 D3D11 共享資源的多線程安全Linux 上要處理 dmabuf 的跨設(shè)備問題。演示項(xiàng)目如果只是想先通起來建議先跑通 OnPaint 路徑確認(rèn)業(yè)務(wù)流程沒問題再在低耦合的位置換紋理路徑。4. 性能參數(shù)與調(diào)優(yōu)把能用變成流暢4.1 幀率控制與臟矩形別讓 OnPaint 拖垮你的 UI 線程很多人不知道 CEF 離屏模式有一個(gè)獨(dú)立的幀率控制參樹在 CefBrowserHost 上通過 SetWindowlessFrameRate(int) 設(shè)置默認(rèn)值各版本略有差異一般不超過 30。這意味著即使頁面里有 CSS 動畫你拿到的回調(diào)頻率也受這個(gè)限制。想要 60fps就要在創(chuàng)建瀏覽器后盡快調(diào)用GetHost()-SetWindowlessFrameRate(60)。但幀率不是越高越好如果頁面是純靜態(tài)的60fps 的調(diào)度本身就會持續(xù)喚醒渲染進(jìn)程白白消耗 CPU。我一般會在收到網(wǎng)絡(luò)請求完成、動畫結(jié)束之類的事件后把幀率切回 30 或 15交互時(shí)再切到 60。臟矩形是另一個(gè)關(guān)鍵的壓縮手段。OnPaint 回調(diào)里的 dirtyRects 已經(jīng)告訴你了哪些區(qū)域需要更新但實(shí)際工程里很多人不看它拿到整幀就上傳完全浪費(fèi)了 Chromium 好不容易算出來的局部性。正確的做法是把 dirtyRects 轉(zhuǎn)成 UV 坐標(biāo)上傳時(shí)用 glTexSubImage2D 只更新那幾塊區(qū)域。配合場景靜態(tài)檢測能省掉大量無意義的帶寬和上傳指令。注意臟矩形在 GPU 路徑下也存在但取紋理句柄后你沒法只摳局部——你拿到的是一整個(gè)紋理局部更新發(fā)生在紋理內(nèi)部所以 GPU 路徑下臟矩形更多用來做 UI 線程和渲染線程之間的同步信號而不是真的去裁剪紋理。4.2 幀數(shù)據(jù)通路設(shè)計(jì)單緩沖、雙緩沖還是環(huán)形隊(duì)列這里要區(qū)分 CPU 路徑和 GPU 路徑。CPU 路徑下OnPaint 是在 CEF 的 IO 線程或 UI 線程回調(diào)的如果你在里面直接操作渲染引擎的資源等于跨線程訪問圖形上下文輕則卡頓重則崩潰。常見做法是準(zhǔn)備兩到三個(gè)緩沖區(qū)做乒乓切換OnPaint 往空閑緩沖寫入渲染線程讀取上一次完成的那塊并上傳不共享同一塊內(nèi)存。class FrameBufferPool { public: FrameBufferPool(int w, int h, int count 3) { for (int i 0; i count; i) { buf_.push_back(std::shared_ptruint8_t( new uint8_t[w * h * 4], [](uint8_t* p) { delete[] p; })); } } std::shared_ptruint8_t AcquireWrite() { std::lock_guardstd::mutex lock(mtx_); auto it std::find_if(buf_.begin(), buf_.end(), [](auto p) { return p.use_count() 1; }); return *it; } private: std::vectorstd::shared_ptruint8_t buf_; std::mutex mtx_; };邏輯說明AcquireWrite 通過 shared_ptr 的 use_count 判斷哪個(gè)緩沖區(qū)當(dāng)前沒人引用這樣 OnPaint 和渲染線程之間不需要額外的同步鎖誰引用計(jì)數(shù)歸到 1 誰就是空閑的。緩沖區(qū)數(shù)量一般 3 個(gè)夠用2 個(gè)會經(jīng)?;ハ嗟却? 個(gè)以上白白吃內(nèi)存。參數(shù)調(diào)整的規(guī)律是分辨率越高緩沖區(qū)越吃內(nèi)存幀率越高需要的緩沖數(shù)越少——因?yàn)樯a(chǎn)者消費(fèi)者周期變短。GPU 路徑不需要這套池子但要做紋理生命周期管理從 OnAcceleratedPaint 拿到的共享紋理句柄必須在當(dāng)前幀引用的反射里顯式釋放否則紋理泄漏在 Windows 上特別明顯跑一個(gè)小時(shí)顯存漲上百 MB。4.3 實(shí)測方法與判斷指標(biāo)幀延遲、CPU 占用、字體閃爍性能優(yōu)化永遠(yuǎn)要有數(shù)據(jù)支撐。我的驗(yàn)證手段分三層第一層看綜合指標(biāo)用 PresentMon 抓 CPU/GPU 幀耗時(shí)用 CE 自帶的--enable-logging --v1看瀏覽器端的丟幀日志第二層看端到端延遲在頁面里放一個(gè) requestAnimationFrame 的時(shí)間戳在引擎?zhèn)葘Ρ燃y理采樣時(shí)刻就能算出完整的端到端延遲這個(gè)值是最能體現(xiàn) OSR 體驗(yàn)的第三層是肉眼檢查異?,F(xiàn)象比如字體閃爍、滾動時(shí)文字撕裂、視頻畫面偶發(fā)黑幀。幀率上限設(shè)置得是否合理直接觀察 CPU 占用和幀耗時(shí)是否呈明顯臺階關(guān)系。如果你發(fā)現(xiàn)幀率上限 60 和 30 時(shí) CPU 占用幾乎一樣那說明瓶頸不在瀏覽器端而在你的渲染引擎上傳路徑上如果 30 幀時(shí) CPU 只有 10%60 幀時(shí)瞬間 50%那瓶頸在 Chromium 的合成和拷貝這時(shí)候才值得去調(diào)窗口大小、換紋理路徑或降低分辨率。字體閃爍是另一個(gè)高頻怪現(xiàn)象通常是因?yàn)榕K矩形沒合并、局部更新和滾動不同步造成的處理辦法是每次滾動開始時(shí)暫時(shí)切到全量刷新滾動停止后再回到局部更新。5. 避坑OSR 項(xiàng)目里翻車最多的 5 個(gè)地方5.1 窗口尺寸為 0 導(dǎo)致的永遠(yuǎn)白屏現(xiàn)象程序啟動后窗口位置是出來了但頁面始終白屏沒有任何繪制回調(diào)日志也沒有明顯錯誤。 原因GetViewRect 在初始化時(shí)返回了 (0, 0) 尺寸或者 host 創(chuàng)建時(shí)窗口參數(shù)里給的寬高為 0。CEF 在尺寸為 0 時(shí)不會觸發(fā)首幀繪制。 解決在創(chuàng)建瀏覽器之前確定初始尺寸GetViewRect 里不能依賴尚未完成的異步布局。我一般會在初始化參數(shù)里寫死默認(rèn)寬度和高度等宿主窗口真正 resize 時(shí)再調(diào)browser-GetHost()-NotifyMoveOrResizeStarted()以及更新 handler 里的 view_width_ 和 view_height_而不是在 GetViewRect 里動態(tài)去查。5.2 鼠標(biāo)點(diǎn)擊位置和頁面元素對不上現(xiàn)象點(diǎn)擊按鈕時(shí)總偏斜尤其是高 DPI 屏幕下點(diǎn)不中按鈕或者點(diǎn)擊位置往右下角偏。 原因宿主系統(tǒng)的鼠標(biāo)事件是物理像素坐標(biāo)而 CEF 的 OSR 坐標(biāo)是 DIP設(shè)備無關(guān)像素Windows 上默認(rèn)縮放 125% 或 150% 時(shí)兩者差了一個(gè) ScaleFactor。 解決在 SendMouseEvent 前做一次坐標(biāo)轉(zhuǎn)換dip_x physical_x / dpi_scaledpi_scale 用 GetDpiForWindow 或 QScreen 的 devicePixelRatio 獲取。不要在 GetViewRect 里把 rect 的寬高除以縮放那樣會破壞 CEF 內(nèi)部的緩沖尺寸計(jì)算只在事件入口做轉(zhuǎn)換像素緩沖的尺寸由 CE 自己按 DPI 調(diào)整。5.3 視頻播放黑屏或綠屏現(xiàn)象頁面里的video標(biāo)簽有聲音但畫面是黑屏或者 GPU 路徑下偶爾出現(xiàn)綠屏條帶。 原因CEF 的 GPU 進(jìn)程默認(rèn)采用硬件視頻解碼解碼后的數(shù)據(jù)在合成時(shí)要走共享紋理如果你的 OSR 是軟件路徑OnPaint合成器無法把硬件解碼幀導(dǎo)入位圖回調(diào)反過來GPU 路徑下共享紋理格式不匹配或者句柄泄漏會導(dǎo)致綠屏。 解決演示和低性能場景直接關(guān)閉硬件加速settings.no_sandbox true并在命令行加--disable-gpu性能要求高的場景走 OnAcceleratedPaint 并保證共享紋理的句柄在你的圖形上下文里做了正確的 OpenSharedResource 操作同時(shí)每幀 refs 用完釋放。5.4 中文輸入法不彈候選詞或候選框位置錯亂現(xiàn)象OSR 下輸入中文時(shí)輸入法候選框要么不出現(xiàn)要么出現(xiàn)在屏幕左下角而不是光標(biāo)附近。 原因CEF 的 OSR 不創(chuàng)建原生窗口所以 IMM/TSF 和瀏覽器之間的消息通道斷裂候選框位置需要宿主自己通過 CefRenderHandler 的 GetScreenPoint 回調(diào)把編輯框坐標(biāo)轉(zhuǎn)成屏幕坐標(biāo)喂給系統(tǒng)。 解決先確認(rèn) CefRenderHandler 里實(shí)現(xiàn)了 GetScreenPoint把傳入的 view 坐標(biāo)加上瀏覽器窗口在屏幕上的位置偏移返回正確的屏幕坐標(biāo)然后需要把焦點(diǎn)管理做好每次點(diǎn)擊 OSR 區(qū)域時(shí)調(diào)host-SetFocus(true)并用SendFocusEvent(true)通知頁面。這在 Windows 上很費(fèi)時(shí)間我的建議是先用英文交互驗(yàn)證業(yè)務(wù)邏輯等核心鏈路跑通再補(bǔ) IME避免兩頭都卡住。5.5 子進(jìn)程路徑不匹配導(dǎo)致的進(jìn)程反復(fù)崩潰現(xiàn)象頁面加載到 30% 就崩主進(jìn)程日志反復(fù)出現(xiàn) renderer process gone甚至主程序一啟動就異常退出。 原因main 函數(shù)里沒做 CefExecuteProcess 分流同時(shí)把 CefSettings.browser_subprocess_path 指向了一個(gè)不存在或者不是同一套 CEF 庫的 exe。CEF 的瀏覽器進(jìn)程和渲染進(jìn)程要通過同一個(gè) IPC 通道通信二進(jìn)制不匹配或入口不對就沒法建立通道。 解決優(yōu)先采用「自己的子進(jìn)程」方案即在 main 開頭統(tǒng)一調(diào)用 CefExecuteProcess讓同一個(gè) exe 同時(shí)承擔(dān)主進(jìn)程和子進(jìn)程兩種角色。這樣交付物只有一個(gè)文件路徑問題天然消失。確認(rèn)分流代碼沒有跑錯分支——主進(jìn)程調(diào)用 CefExecuteProcess 返回 -1 是正常的0 表示子進(jìn)程邏輯已執(zhí)行完畢要繼續(xù)往下走的只有 -1 這一條路。6. 進(jìn)階從演示到產(chǎn)品的最后幾公里演示 zip 跑通之后真正上生產(chǎn)前還有三件事值得認(rèn)真處理。透明度是第一個(gè)坎。OSR 默認(rèn)背景是不透明灰色你要在 settings.background_color 里設(shè)置帶 alpha 的值同時(shí)頁面的根元素也要是透明背景兩層有一層不干凈就會前功盡棄。驗(yàn)證透明是否真的生效不要用截圖工具直接在你的引擎里去采樣紋理的 alpha 通道截圖工具會把窗口背景合成進(jìn)去造成假性成功。鍵盤焦點(diǎn)和 IME 的完整鏈路是第二個(gè)坎。窗口模式瀏覽器遇到 Tab 鍵焦點(diǎn)循環(huán)會自己處理OSR 下 Tab 鍵要轉(zhuǎn)發(fā)給 CE 的 SendKeyEvent焦點(diǎn)切換信號要反饋給宿主窗口系統(tǒng)。IME 部分建議在 Windows 平臺優(yōu)先實(shí)現(xiàn) TSF 相關(guān)的 CefRenderHandler 回調(diào)這條路上沒有捷徑但可以先用--enable-featuresTSF開啟 CE 對 TSF 的支持減少一部分自研工作量。多窗口 OSR 是第三個(gè)坎。CEF 一個(gè) browser 實(shí)例對應(yīng)一個(gè)獨(dú)立頁面多窗口場景要共用同一個(gè) CefApp 和 CefRequestContext避免每個(gè)窗口單獨(dú)初始化 Chromium內(nèi)存會爆炸。正確的做法是先初始化一次全局環(huán)境然后按窗口創(chuàng)建多個(gè) CefBrowserFrameRate 和緩沖區(qū)管理要獨(dú)立避免相互搶占線程。最后說一個(gè)我踩了一年才改過來的習(xí)慣把 OnPaint 和 OnAcceleratedPaint 路徑做成可切換的編譯開關(guān)而不是長期只保留一條。因?yàn)椴煌蛻魴C(jī)器的顯卡驅(qū)動兼容性差異很大有的機(jī)器 OnAcceleratedPaint 能拿到紋理有的就會崩成黑匣子保留 CPU 路徑作為兜底是 OSR 產(chǎn)品上線冷靜期的后悔藥。我自己做最后一個(gè) OSR 項(xiàng)目時(shí)初期沒留這條后路結(jié)果在批量部署時(shí)遇到一批集顯驅(qū)動的兼容問題硬生生加了兩周排期。希望你不用走這條彎路——先抄上面的最小工程把切換開關(guān)留好再慢慢調(diào)幀率、換紋理穩(wěn)著來。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月婷婷啪| 五月天色色无码| 天天爽天天爽天天爽天天爽天天爽| 伊人综合网站| 婷婷激情五月综合| 五月天婷婷成人网| 亚洲综合色五月| 九色91国产| 日操熟女| 亚洲中文字幕AV在线| 丁香色成人| 国产av天堂| 欧美久久婷婷| 日本va视频| 六月婷婷av| 色播激情婷婷| 秋霞九九无码| 婷婷丁香成人色综合| 99干日本| 激情五月综合网最新| 色狠狠图片| 亚韩在线视频| www.激情.com.| 九色综合五月天婷五月| 99久久欧美| 97人人操人人爽| 久久欧洲综合网| 精品无码av丁香五月激情| 啪啪东京热| 黄色热99| 婷婷丁香五月综合网| 操久久网| 99re思思在线视频| 五月丁香婷婷爱激情综合网| 国产色色在线| 伍月婷丁香婷| 26uuu色噜噜精品一区| 六月婷婷综合久久| 天天色丁香| 九九综合88| 国产成人精品123区免费视频| 婷婷丁香久久| 日韩另类| 国产,欧美,学生妹,视频| 99热.com| 高清一区二区三区日本久| 婷婷伊人网| 91色在线 | 日韩| 九九性视频| 五月丁香六月婷婷婷婷| 亚洲另类视频| 亚洲网视屏| 91九色在线| 夫妻超碰在线| 99网址在线看| 丁香五月天激情婷婷丁香六月| 六月丁香啪啪啪| 伊人五月天97| 欧美群妇大交乱婬网| 九九久久99精品免费观看www| 在线观看免费狠狠色丁香香综合| 亚洲艹网| 99热99热99热99热| 1024国产| 嫩BBB搡BBBB榛BBBB| 米奇影视资源婷婷狠狠色激情欧美五月丁香| 综合天天综合| 婷婷六月情| 欧美成人精品老美女噜噜噜| 五月丁香自拍| 日韩av一区二区在线/日产精品久久久| 亚洲亚洲人成综合网络| 99久久亚洲国产| 婷婷五月色图| 五月婷婷成人w| 狠狠操在线视频| 人人爽亚洲| 色五月女| 99在线精品观看99| AV免费在线网站| 99热在线播放| 可以免费观看的AV| 99热免费18| 99热99| 丁香激情久久| 五月丁香婷婷成人网| 激情五月天婷婷| 99婷婷| 久久久亚洲精品一区二区三区浴池 | 人人操五月天| 9l视频自拍九色9l黑人| 丁香婷婷色五月| 开心深爱五月天| 在线免费视频caop| 六月色色| 俺去也五月天婷婷| 被强行糟蹋的女人A片| 九九无毛| 婷婷免费成人视频| 狼人久草| 91婷婷在线观看| 成人在线日韩| 色欲午夜无码久久久久久张津瑜| 激情五月天。| 天天拍天天做视频| 亚洲综合婷婷| 在线资源av-超碰中文在线-成人AV | 99国产精品久久久久久久久久久| 精品女人九九九| 久久99热这里| 六月婷婷激情| 伊人五月婷婷| caopeng97人人| 美妞av| 人人摸人人| 丁香久久| 九九精品视频免费在线| 久久久999精品| 99国产在线精品视频| www.色9| 色狠狠色狠狠| 色爽干| 九九久久五月天| 丁香六月无码播放| 丁香婷婷婷婷十二月在线观看视频| 欧美一级色| 亚洲夜夜操| 国产精品人人做人人爽人人添| 五月色婷婷中文字幕| 五月丁香五月天现场视频| 91操在线视频| 婷婷网影院| 婷婷五月综合啪| 超碰在线看| 色婷婷777狠狠| 亚州性爱99| 精品无码久久久久久久久| 五月天丁香久久| 亚洲欧美另类在线23p| 激情丁香五月婷婷| 69五月天视频| 色和综合网| 思思久ren热| 超碰chaompinm| 久热亚洲| 91丨九色丨大屁股| 开心久久xxx色| 五月丁香婷婷色| 99色色| 六月激情久久| 99热1| 五月婷婷三级| 激情五月激情综合俺也去婷婷小说| 色婷婷狠狠爱| www.激情五月天.com| 丁香五月天啪啪| 九九99精品视频在线观看| 九月色婷婷综合| 五月天久草| 五月天婷婷在线播放免费| 色五月丁香A欧美com| 99色1| 狠狠做六月爱婷婷综合aⅴ| 综合另类视频| 婷婷五月天成人五月天| 精品人妻在线免费观看| 婷婷五月天开心网| 亚洲视频五区| http:色情日本com| 丁香婷婷六月男男| 九九色中文| 婷婷五月天小说网| 丁香五月乱中文字幕| www。五月,com| 亚洲色无码| 久热婷婷在线视频| 综合网亚洲| 久色视频首页| 久七香蕉| 激情 婷婷 丁香五月天| 《久久综合九色综合97婷婷| 六月激情综合| 婷婷六月丁| 26.uuu丁香五月婷婷| 激情五月婷婷综合| 一本久道综合色婷婷五月| 婷婷久久色| 97资源碰碰| 亚洲综合激| 嫩草AV久久伊人妇女超级A| oVV4WIB3vFi8D| 人人操人人妻| 夜夜谢天天干| 丁香婷婷激情六月五月开心| 美女婷婷六月色| 婷婷色网址| 超碰免费人妻| 26uuu国产| 美女va| 天天插操| 亚洲黄色影视| 丁香五月人妻| 九九热免费| 超碰超碰在线| 中文字幕天天干| 天堂AV三级| 中文字幕有多少字| 午夜色婷婷| 色色日韩无码| 天天做天天要天天爱| 99热午夜精品| www99热| 色五婷婷开心缴| 99啪啪| 97碰精品| 五月天激情美女久久| 五月天婷婷爱| 五月婷婷综合丁香视频| 天天综合五月| 99久久a线观| 91无码视频| 五月丁香婷婷婷婷综合网| 亚洲乱码w在线观看| 99热在线观看| 天天操夜夜操| 久久九九热视频| 99热精品在线免费观看| www.sezonghe| 这里只有九九精品| 丁香五月天激情AV| 激情网站综合五月天| 久久婷婷五月综合成人d啪| 日本少妇裸体做爰高潮片| 91啪啪网| 97干欧美| 综合色情网| 九九99精品视频在线观看| 99热99思午夜精品| 99久久国产宗和精品1上映| 色婷婷av在线| 九九九热精品| 久综合网| 6月丁香婷婷| 激情图片婷婷| 99久久久久| 丁香六月婷婷综合欧美| 欧美日韩123| 操比激情五月| 久久婷婷亚洲无码一起| 98永久精品| 久久婷婷的综合色丁香五月| 亚洲啪啪网| 激情宗合 激情宗合| 久久亭亭电影| 秋霞丝袜啪啪啪| 激情婷婷在线| 婷婷va| 色青五月天| 色婷狠狠| 爆乳熟妇一区二区三区爆乳照片| 色五月天影视| 啄木鸟黑丝一区二区| 99热这是里只有精品| 99re思思精品视频在线观看| 天天拍夜夜爽| 色五婷婷开心缴| 亚州色色色| 亚洲天堂aaa| 夜夜骑夜夜撸| 婷婷久久久| 99久热这里只有精品| 色五月丁香婷婷| 婷婷五月天亚洲| www.色婷婷| 色欲一区二区三区精品A片 | 这里只有精品视频一区| 爱婷婷都市激情| 狠狠狠狠狠狠| 欧美成人精品A片免费一区99| 99在线精品观看99| 99久久久精品| 人人爱操| 无码人妻一区二区三区免费九色| 九九在线精点品| 99爱视频| 国产精品久久久久久亚洲毛片| 亚洲三A| 欧美日本97| 精品牛仔裤超碰| 玖玖国产视频一区| 丁香五月天视频在线播放| 真实亲子乱子伦高清在线观看| 天天操加勒比| 天天干在线播放| ...婷婷五月综合不卡,国产在线手机| 五月丁香久人妻中文| 人人摸人人射| 九九色婷婷| 亚洲另类电影| 六月丁香六月婷婷欧美| 婷婷五月天伊人网在线观看视频| 色婷婷A| 丁香五月在线播放| 91丨九色丨老农村| 夜夜夜夜操| 激情婷婷六月天| 五月丁香六月婷综合成人综合| 91人人妻人人操人人爽| 日本美女天天日天天爽| 97干在线观看视频| 丁香九色不卡aaa| 激情99热| 中文av网| 九九操屄| 【乱子伦】黄色| 天天久| 丰满人妻一区二区三区| 婷婷五月丁香欧洲| 亚洲欧美一区二区三区爱爱动图| 精品香蕉99久久久久网站| 天天搞天天色综合| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 国产AV国片偷人妻麻豆| 丁香六月久久| 激情网五月天| 色婷婷第四色| 九色色| 开心五月网 | 国产成人精品一区二三区熟女在线| 性热视频99精品| 五月婷婷之激情五月| 五月婷婷av| 十二区无码| 国产阿姨日皮艹逼内射视频| 亚洲五月婷婷| 天天噜日日噜综合无码| 91日日日| 99热费观看| 九九精品视频在线6| 丁香婷婷久久 | 天天做天天爱天天爽| 2017狠狠干| 激情丁香六月| 六月婷欧美丁香综合| 久久久思思热| 久久久com| 黄网免费观看| 亚洲天堂99| 9月色婷婷| 五月婷婷五月天激情网| 一婬一伦一区二区三区| 影音先锋天天日| 亚洲天堂九九九| 婷婷丁香激情五月天色色| 国产露脸150部国语对白| 五月天狠狠网站| AV在线免费播放| 91凹凸在线| 99热这里全都是精品| 热久久这里只有三级视频| 久色国产| 99色免费| 欧美色色色| 亚洲网视屏| 中文字幕,综合,91| 欧美在线视频免费播放| 亚洲综合五月天婷婷丁香| 五月丁香激情综合啪啪| 狠狠狠狠狠狠狠狠| 成年AAAA色情| 婷婷五月丁香激情| 婷婷丁香五月色| 日本欧美啪啪| 久久综合爱| 色噜噜婷婷| 中文av网| 久久婷婷在线| 丁香六月婷| 97热精品| 色六月丁香婷婷狠狠干| 激情婷婷。| 成年人丁香五月| 九九精品自拍| 中字幕视频在线永久在线观看免费| site:publishdd.com| 7777久久亚洲中文字幕| 久久久999精品| VA日本视频| 五月色情| 操九色| 五月婷婷另类| 大操人妻| 五月丁香| 涩婷婷五月天| 99碰碰| 五月婷婷另类| 色婷婷激情视频| 久久99激情| 久久婷婷成人视频| 激情婷婷五月天丁香| 99综合在线| 五月婷成人网| 婷婷丁香宗合888| 思思久久99| 婷婷五月色丁香在线看| 色吧五月婷婷| 在线免费视频caop| 久热无码| 丁香六月欧美| 婷婷黄色五月天在线视频| Av免费网站在线| 激情综合色| 99热这里只有免费| 亚洲视频在线观看| 182TV大香蕉| 丁香五月另类小说在线阅读| 大香蕉五月天婷婷丁香91| 极品人妻XXXXOOOO| www.久久99| 久久婷婷五月综合伊人| 永久99免费视频网站| 婷婷色情五月| 婷婷色色综合| 色婷婷综合网站| 2025色婷婷| 夜夜涩涩涩| 婷婷中文字幕在线| 欧美 色婷婷| 欧美色图天堂网| 五月丁香六月婷婷无码| 5月丁香六月婷婷| 9色视频在线| 99久久婷婷综合| 日韩啪啪网| 久久久五月五丁香| 色情婷婷五月天| 色人五月婷婷| 婷婷欧美激情综合| 九九黄色网| 第五婷婷伊人丁香| 亚洲视频码| 国产精品久久久久久久久久 | 狠狠干在线| 亚洲va欧美va国产综合久久久| 五月婷婷激情综合在线| 色情五月综合婷婷| 青青.com| 99热九九这里只有精品| 在线播放中文字幕| 人妻综合网| 亚洲精品网址| 国精产品一区二区三区| 人妻激情网| 狠狠色婷婷综合开心影视| 日本欧美成人片AAAA| 色色色色网站| 久久这里只有精品热在99| 99爽视频| 欧美色婷婷| 91人妻人人做人碰人人爽九色| 天天色天天| 日韩色色视频| 大天天伊人| 丁香五月婷婷香| 国产在这里只有精品| 开心激情网在线| 99啪视频在线观看| 色99免费视频中文| 永久免费一区二区三区| 99自拍视频网站| 操碰99| 色综合久久天天综合网| 天天狠天天狠| 夜夜夜叫天天天做| 激情都市丁香婷婷| 玖玖无码中文| 天天插天天插| 天天肏天天舔AV| 99热在线极品极品| 97碰人人操| 色七七九九| 九九香蕉网| www.激情在线| 青草激情在线| 97极品在线| 丁香五月影院| 六月婷婷色五月| 99久久喉9| 久久久五月五丁香| 天堂草在线观| 亚洲中文字幕在线观看| 婷婷五月天精品| 毛片九九九九九九| 久久婷丁香五月| 丁香五月婷婷激情小说| 国产日日操夜夜操的肉棒视频| 俺去也五月天婷婷| 可以看的AV| 婷婷五月天淫荡| 日hao1区| 五月天婷五月天综合网在线观| 精品综合五月| 久99热在线观看| 日本狠狠色| 亚洲操女| 日韩色色网| 少妇人妻综合色6699| 91凹凸在线| 99色在线视频| 色色网91| 五月六月丁香婷婷在线观看| 五月欧美丁香在线观看| 国产AV一区二区三区日韩| 欧美日本高清视频99| 亚洲黄色影视| 久久五月天网| 天天综合五月| 色婷婷狠狠爱| 99色免费在线观看| 婷婷六月激情啪啪| 91丨九色丨43老版熟女| 96色婷婷| 天天草天天舔| 九色视频91| 亚洲丁香花五月丁香花| 99er这里只有精品视频| 天天干天天拍| 色操综合| 色五月婷婷、老熟女| 免费视频无码| 高清av在线国产| 欧美噜噜免费观看| 色色色五月婷婷| 天天热夜夜操| 人妻丰满精品一区二区A片| 激情四射婷婷色色色| 亚洲看av的网站| 91日本在线| 超级碰碰视频无码| 五月丁香激情欧洲啪啪| 极品人妻VIDEOSSS人妻| 婷婷五月天在线看| 超碰在线看| 亚洲成人av在线播放| 天天摸天天高潮天天爽| 桃色成人网| 99热r| 色情丁香五月婷婷精品| 婷婷九色| 五月花婷婷| 婷色综合| 26uuu亚洲精品国产| 亚洲妇女熟BBW| 99热九九这里只有精品| 99婷婷| 超碰在线人人| 97香蕉碰碰人妻国产欧美| 日本97久久久精品| 丁香五月六月| 色婷婷色| 婷婷成人AV| 91久久电影| 五月婷婷五月丁香| av无码电影| 五月婷婷亚洲| 欧美在线视频9| 九九热经典视频在线观看| 少妇高潮呻吟A片免费看软件| 五月丁香网av| 少妇AB又爽又紧无码网站| 久久成人性爱| 久久se 综合网| 国产片色| 特黄三级又爽又粗又大| 激情五月色婷婷| 婷婷丁香五月天大香蕉| 热99在线精品| 欧美精品999| 婷婷色色五月天| 九九视频免费| 操人妻AV| 狠狠草狠狠草| www.99久| 亚洲亚洲人成综合网络| 色五月天激情| 综合色吧| 综合网五月| 精品婷婷五月天| 色一色综合| 丁香六月成人| 综合色五月| 色五月综合| 秋霞网在线观看理论91| 十二区无码| 激情丁香五月| 操操操www.com| 9精品久久999| 亚洲成人网站在线播放| 六月激情婷婷色| 激情综合网激情五月俺也去| 夜色综合网| 婷婷丁香69精华| 亚洲V国产V欧美V久久久久久| av性爱在线| 色欧美影院| 狠狠干,狠狠操| 色狠狠色狠狠| 丁香激情网| 51精品国自产在线| 婷婷五月电影| 婷婷五月综合在线视频| 色婷婷超碰| 99久热| 五月天激情国产综合婷婷| 超碰9| 久久无码成人| 五月天堂婷婷| 思思久日精品视频| 色色五月婷| 五月久久丁香| 六月激情综合| 天天爽天天操| 激情亚洲婷婷六月| 欧美性爱五月天| 久久9情免费| 婷婷99| 亚洲综合色色| 99成人精品| 婷婷色丁香五月| 人妻在线观看视频| 婷婷性爱| 99九九精品| 日日噜狠狠色| 五月婷人妻| 96精品久久久久久久久| 色色草97| 国产精品久久久久9999小说 | 五月丁香婷婷老司机| 另类图片五月天| 激情影院丁香五月| 五月天激情社区| 色五月无码| 伊人久久大香线蕉av最新| 九九激情| 五月婷婷av在线| 色播丁香| 五月天婷婷综合网| 99热啪啪| 欧美97色| 99热1| 五月在线| 天天做天天爱天天要| 丁香久久五月天视频在线观看 | 婷婷5月天激情综合| 婷综合| 超碰无码318604| 色五月婷婷91在线| 五月天色色色网| 人人摸人人操人人爱| 国产精品美女久久久久AV超清 | 色九亚洲| 色娸娸综合网| 高清成人综合| 久久久久久久久久91| 美国不卡视频| 中文字幕成人影视| 一起草无码| 干一干xxxx| 人人插9| 婷婷色五月天色| 丁香香蕉婷婷| 九九精品热播| 色综合久久99色| 色婷婷综合综合网| 亚洲av网站在线观看| 国产97色在线| 久久九九网| 丁香五月激情婷婷视频| 丁香五月自拍| 五月丁香婷婷成人伊人网| 五月激情婷婷六月丁香| 丁香五月23111| 色综合射婷婷| 五月丁香激情综合啪啪| 激情综合婷婷| 禁欲电影完整版在线播放| 欧美性生交XXXXX无码小说| 亚洲中文字幕在线观看| 思思干精品| 亚州色综合| 99色五月| WWW.五月天9999| 婷婷六月中文字幕| 亚洲色在线观看| 久久性爱视频| 99精品热| 99青青草99| 99色免费| 天天插天天玩天天干| 六月婷伊人| 涩婷婷五月天| 黄网在线免费观看| 亚洲乱码日产精品BD| 国产综合A片| 欧美啪啪9| 侠女刀之记忆电影在线看免费| 久久这里只有精品无码| 五月丁香六月激情综合| 思思99热| 自拍视频99| 99色在线| 丁香激情综合| 五月天狠狠| 伊人九九68| 99欧州偷拍视频| 婷婷五月免费观看| 五月丁香六月婷| 九九热超碰| 99天堂网最新| 久久6这里只有精品| 泰州成人视频| 国产精品久久欧美久久一区| 玖玖99精品视频| 五月综合激情久久| 播播网色播播| 精品亚洲国产成AV人片传媒| 狠狠狠狠狠狠色| 婷婷六月激情丁香| 日本三级中国三级99人妇网站| 草草色情综合网| 婷婷色五月丁香六月欧美啪| 五月激情网站| 婷婷在线精品| 久久Xx| 色情免费视频播放| 这里只有精彩视频| 天天干,天天操,天天射| 99re这里有精品手机在线| A片一曲| 大香久久综合网| 思思视频这里是精品| 色玖玖综合| 久爱综合| 99热成人精品| 91操操| 婷婷五月色惰| 少妇人妻综合色6699| 狠狠色色| 婷婷五月天激情四射| 五月天精品| 伊人久久婷婷五月综合97色| 五月丁了香蕉综合| 超碰99在线观看| 99操免费视频| 婷婷五月天综合久久| 久久婷婷丁香花综合网| 思思99精品视频在线观看| 久久HD| 九热免费视频| 99热免费| 婷婷丁香社区| 激情五月影院| 91九色在线观看免费| 日本欧美国产| 极骚大香蕉伊人| 色婷婷伦理| 五月婷丁香| 五月婷婷六月丁香激情深爱| 婷婷五月av| 日韩一级A片黄色| 99ri视频在线播放| 九九99香蕉在线视频播放| 激情五月婷婷丁香| 色综合久久8| 五月天久久综合婷婷丁香| 黄网在线免费观| 婷婷激情五月天亚洲综合| .精品久久久麻豆国产精品| 丁香五月天偷拍| www.夜夜操| 色五月婷婷 成人| 久99久视频| 综合99在线| 亚洲精品久久久无码| 五月天自拍网| 超碰日韩成人| 久8色色| 色婷婷四虎| 色播五月婷婷| 9有码中文| 婷婷五月丁香香蕉| 欧美激情五月综合| 亚洲亚洲人成综合网络| 亭亭社区五月天| 人妻Av在线| 五月婷婷中文| 熟女网站久久| 天天操综合网| 深爱丁香激情| 大胆伊人久久| 91丨九色丨43老版熟女| 日日操夜夜操狠狠操| 91精品国产综合久久久不卡电影| 热99精品视频| 狠狠色五月| 色偷偷五月天| 99只有这里是精品| 日韩成人电影Av| 97操操操| 色五月天天| 亚洲啪啪精品| 丁香六月色婷婷| 天天天天天色| 亚洲视频在线观看区| 激情综合在线观看| 成人色五月天| 密臀av无码人妻精品| 青草激情综合| 婷婷涩五月天综合| 天堂久久性| 中文字幕成人| 人人草人| 九玖视频这里只有精品| 97色 五月天丁香| 亚洲性视频| 五月丁香 久久久| 久久婷婷草| 成人看片网站| 五月丁香激情综合久久| 五月婷婷五月丁香综合| 91伦| 欧美性爱五月天| 五月丁香免费看| 热的国产99热| 香蕉乱插| 亚洲中文字幕AV在线| 综合久久影院| 91小黄书网址在线观看| 日韩成人无码人妻| 五月丁香婷婷激情爱爱| 色色色网站| 九九热视频这里只有精品| 激情播丁香| 激情婷婷丁香五月天| 99视频热99| 婷婷五月天最新综合你懂的 | 激情色色| 丁香久久久| 日本性激情色播| 超碰在线人妻| 婷婷激情五月天小说| 亚洲国产精品VA在线看黑人 | 极品人妻VIDEOSSS人妻| 99爽视频| 激情五月天伊人影院| 2020久久婷婷五月| 久草 天堂| 日韩AV中文字幕在线| 无码少妇高潮喷水A片免费| 啪啪激情网| 丁香六月婷婷五月婷婷| 婷婷亚洲在线| 精品婷婷五月视| 色综合婷婷| 人人搡人人| 欧美十二区| 成人无码髙潮喷水A片| 久久色情| www.五月天色色.com| 婷婷播5月| 九九热视频免费的| 天天摸,天天爽| 久久HD| 97在线刺激| 欧美精品18| 99无码黄色视频| 亚洲性色XXXXX| 思思热99er在线视频| 另类天堂| 五月婷婷色色色| 五月婷婷亚洲| 97色在线观看视频| 久久免费丁香| 婷婷网影院| 五月天激情四射网站| 第四色大香蕉| 亚洲欧洲午夜成人精品av| 九月大香蕉| 99色在线视频观看| 五月婷婷亚洲色图| 71在线精品视频一区| 亚洲免费在线观看岛国| 九月av在线| ...婷婷五月综合不卡,国产在线手机| 五月丁香A片| 激情五月天福利| 狠干综合| 亚洲成人另类| 久久久香| 538午夜激情| 亚洲精品乱码久久久久99| 五月丁香啪啪拍| 777精品成人a v久久| 五月天婷婷丁香视频| 99热视精品| 激情五月天综合| 激情五月婷黄版| 日韩性视频| 亚洲国产99| 国产古装妇女野外A片| 91久久精品国产91性色TV| 国产操B| 淫荡A片| 五月婷婷狠狠干| 五月天婷婷综合久久| 日韩在线观看网址| 超碰免费人人肏| 狠干综合| 99在线热| 色五月婷婷、老熟女| 婷婷五月天亚洲丁香| 五月激情婷婷国产精品久久久久久| 色噜噜狠噜噜视频| 99热91| 少妇被下春药玩弄A片| 婷婷丁香久久网| 日日操夜夜操无码免费| 久久五月天色婷婷| 亚洲激情综合五月婷婷啪啪| 天天操天天操天天操天天操天天操| 五月丁香六月成人| 六月丁香五月婷婷| AV在线不卡网站| 殴美日比视频| 五月花婷婷最新| 99久久这里只有精品| 夜夜爽天天干| 182tv992tv人之初午夜免费观看| 五月天综合久久丁香91| 六月综和久久| 狠狠操狠狠操AV| 综合网激情| 97超级碰碰碰久久久| 久久视频婷婷视频| 色婷婷激情视频| 亚洲成人AV在线观看| 成人无码精品1区2区3区免费看| 久久久九九九 99| 伊人婷婷青青cao| 永久AⅤ1| 99∨VTV| 玖玖玖婷婷婷| 99婷婷五月天| 五月天综合在线| 激情又色又爽又黄的A片| 五月丁香久久丝袜啪啪| 五月婷久久| 99色热视频在线| 国产精产国品一二三在观看 | 九九热视频精品| 久9热插入| 激情涩涩网| 超碰资源在线| 操91综合网| 婷婷 久综合| 热久久这里只有精品| 国产午夜精品AV一区二区麻豆| 五月丁香激情婷婷| 色五月丁香伊人五月| 开心五月激情网| 丁香久久综合| 国产26uuu| 久久久天堂国产精品女人| 色综合婷婷| 五月天婷婷激情| 久久丁香综合精品综合| 六月色日韩| 99婷婷国产最新视频| 色婷婷狠狠久久综合五月| 亚洲成色综合网站免费观看| 五月伊人网| 婷婷伊人视婷婷婷| AAA亚洲AV| 人妻丰满精品一区二区A片| 超碰人人干| 五月丁香自拍| 99玖玖人人| 五月激情五月婷婷五月天在线| 97色碰| 日本色色网| 91色在线/日韩| 丁香六月| 狠狠色噜噜狠狠狠狠综合| 日韩AV在线电影| 激情五月,深深爱五月| 免费视频在线观看的网站| 精a品a视a频| 五月婷婷中文| 激情五月天视频| 婷婷无码视频| 五月丁香 啪啪| 狠狠干综合网| 天天综合五月| 久久狠狠干| 亚洲成人在线综合| 婷婷色操| 3p久久| 激情久久久久久久久久久| 激情亭亭五月| 日本一级一片免费视频| 超碰人人91| Av九九| 久久作爱| 色五月激情五月天| 99思思在线视频| 婷婷99| 五月丁香六月婷婷色| AAA级久久久精品| 亚洲色综久久五月| 色八戒操婷婷| 婷婷五月天综合在线 | 狠狠干在线| 五月婷婷中字在线| 青草青草视频2免费观看 | 五月丁香六月婷婷激情网| 色激情五月| www.色99| 亚洲小说五月婷婷| 天天日天天久久青青| 久狠日av| 99内射视频| 五月色色网| 国产日批视频免费播放| 国产看真人毛片爱做A片| 狠狠色婷婷六月激情网| 丁香花操逼| 五月色网| 日日干综合| 精品五月花| 激情AV在线| 丁香五月综合激情久久潮喷| 久久精品一区二区三区四区| 色婷婷社区| 九九色之九九色88| 日日干夜夜干| 亚洲VA在线| 久久久A级视频| 深爱激情六月天| 久色中文| 婷婷丁香五月色偷偷| 狠狠五月天| 五月丁香六月婷婷网站| 成人网在线视频| 91久热| 99re这里只有精品视频了| 婷婷五月天激情电影| 色色99| 亚洲婷婷五月天激情| 婷婷色综合| 91操黄| 色婷婷AAA| 精品福利911| 久久 无毛。| 欧美人与性动交CCOO| 六月婷婷开心| 好吊操这里只有精品| 99啪视频在线观看| www久久99| 激情文学五月丁香六月婷婷| 青草青草久热这里只有精品| 影音先锋AV资源男人站| 日本三级日本三级99| 天天xxxxxx天天日| 婷婷五月天国产精品| 91碰操| 91chinese在线| 综合图片色色| 婷婷五月天激情在线观看| 97碰人人操| 五月日韩中文字幕| 久久9精品| 无码色色| 精品国产va久久久久久久| 大香蕉伊人爱在线| 香蕉曰比| 亚洲人妻AV| 久热99热| 天天做天天爱天天综合网| 婷婷色五月激情| 91丨九色熟女丨首页| 成人.在线日韩| 久久这里只有精品8| 婷婷丁香五月婷婷| 涩五月丁香| 丁香婷婷综合精品六月初| 天堂综合久久| 色天使久久综合| 国产成人精品一区二三区熟女在线 | 久久A V无码视频| 热无码A∨| 日韩综合网络男女香蕉a片| 色五月开心久久网| 性做爰A片免费视频A片直播| 99视频精品在线| 欧洲一区二区| 五月婷在线观看| 99成人小视频| 中文字幕日韩无码制服诱或| 大香蕉九九| 99爱99操| 1024成人在线观看| 99综合成人视频在线观看| 六月婷综合| 久久久99精品免费观看| 日日操夜夜撸| 色婷婷成人| 色婷| 日韩成人中文字幕| 狼人婷婷综合| 天天干天天干天天| 婷婷va| 久久这里都是精品| 亚洲综合色色色| 精品国产va久久久| 色五狠狠| 丁香五月色欲| 亚洲日日操| 色丁香影院| 开心色五月天久久久久久久| 丁香五月婷婷手机| 啪到高潮激情丁香五月| 色综久久AV| 色综合香蕉视频| 99九九热视频免费| 亚洲人妻电影| 综合激情肏逼网| 超碰无码318604| 久久性刺激| 97资源欧美日韩大香蕉超碰一区| 99ri久久| 五月丁香六月婷综合成人综合| 亚洲无码播放| 五六月婷婷| 99热这里只有精品国产免费| 欧美美女国产日韩一区二区久| 综合xx网| 久久这里只有国产视频| Www,五月天| 狠狠操天天干| 婷婷五月色情天| 天天日天天爽| 午夜成人片400| 五月Huangsewang| 五月黄色婷婷| 色天堂在线| 九九热亚洲中文在线观看免费| 伊人五月婷婷| 久久久久人无码人妻| 岛国AV网| 亚洲成人AV在线观看| 五月婷婷综合网| 一本大道伊人AV久久综合| 免费碰碰视频久| 久久久久久久久久久月丁| 日本超碰在线| 亚洲丁香五月深爱五月| 99日这里只有精品| 玖玖99免费视频| 五月婷在线| 99热草草| 日本97在线视频| 五月婷婷内射网| 欧美精品熟女一区二区| 综合性爱网| 五月激情综合网| 丁香伊人五月色婷婷五十路| 久久婷婷啪啪视频| 五月天色婷婷视频| 丁香五月六月综合欧美| 九九婷婷网五月天| 玖玖婷婷色欲| AV网站免费在线| 丁香六月 人妻| 色色热| 国产在线aaa片一区二区99| 天天透天天干| 婷婷色五月婷婷姐妹| 五月婷婷综合精品| 丁香五月天堂| 久综合九综合99| 99操视频| 逼里香不卡| 五月天偷拍| 五月丁香久久婷| 99热精在线九九久久保| 婷婷五月天六月丁香| 五月开心网| 91超级碰在线| 亚洲精品五月| 婷婷六月啪啪| 超碰在线播放免费观看| 天天天添天天操| 五月婷婷丁香五月亚洲色| 色五月婷婷丁香五月| 色色色图| 人人妻人人澡人人爽| www.狠狠操.com| 丁香婷婷九月| 精品五月花| 久久精品在线| 噜噜干日本| 五月色婷婷夜色| 五月综合激情图片 | 亚洲4区国产欧美| 五月婷婷插一插| 538在线精品| 五月丁香毛片| 国产精品婷婷午夜在线观看| 天天天天干| 五月天婷婷基地综合网| 五月婷婷开心综合| 欧美韩国日本| 狠狠干狠狠色| 亚洲成人无码网站| 色婷婷精品视频在线播放| 热99视频精品| 5月丁香啪啪啪| 五月天色色婷婷| 色五月激情五月天| 狠狠婷婷色综合| 色婷婷五月天激情在线播放| 91丨九色丨大屁股| 亚洲免费av在线| 日日夜夜狠狠操| 97久久婷婷色| 亚洲射激情| 99re久久| 天天性视频| 99在线精品观看99| 大香蕉久热| 少妇人妻人伦A片| 久久午夜丁香| 天天爽,夜夜爽| 9久热在线视频| 99热精地址| 99在线资源视频| 婷婷丁香五月六月激情| 色九区| 熟女乱论网| 国产亚洲99久久精品| 99热免费网站| 婷婷五月在线观看| 天天色综和网| 久久人人妻| 另类色视频| 婷婷五月天av| 五月六月丁香婷婷在线观看| 天天日天天色| 亚洲色欲欧美一区二区三区| 开心五月色婷婷综合开心网| 狠狠婷婷爱| 91打屁股免费看| 欧美激情五月| 婷婷色色色| 99色视频在线| 9久热在线视频精品|