mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add support for shared texture and external BeginFrame in OSR mode (issue #1006)
- Add CefWindowInfo::shared_texture_enabled and CefRenderHandler::OnAcceleratedPaint for shared texture support. Currently only supported on Windows (D3D11). - Add CefWindowInfo::external_begin_frame_enabled and CefBrowserHost::SendExternalBeginFrame for external begin frame support.
This commit is contained in:
committed by
Marshall Greenblatt
parent
09afa3a843
commit
713eebcafc
@@ -30,7 +30,8 @@ void CefBrowserPlatformDelegateOsr::CreateViewForWebContents(
|
||||
DCHECK(!view_osr_);
|
||||
|
||||
// Use the OSR view instead of the default platform view.
|
||||
view_osr_ = new CefWebContentsViewOSR(GetBackgroundColor());
|
||||
view_osr_ = new CefWebContentsViewOSR(
|
||||
GetBackgroundColor(), CanUseSharedTexture(), CanUseExternalBeginFrame());
|
||||
*view = view_osr_;
|
||||
*delegate_view = view_osr_;
|
||||
}
|
||||
@@ -69,6 +70,14 @@ void CefBrowserPlatformDelegateOsr::BrowserDestroyed(
|
||||
view_osr_ = nullptr;
|
||||
}
|
||||
|
||||
bool CefBrowserPlatformDelegateOsr::CanUseSharedTexture() const {
|
||||
return native_delegate_->CanUseSharedTexture();
|
||||
}
|
||||
|
||||
bool CefBrowserPlatformDelegateOsr::CanUseExternalBeginFrame() const {
|
||||
return native_delegate_->CanUseExternalBeginFrame();
|
||||
}
|
||||
|
||||
SkColor CefBrowserPlatformDelegateOsr::GetBackgroundColor() const {
|
||||
return native_delegate_->GetBackgroundColor();
|
||||
}
|
||||
@@ -215,6 +224,12 @@ void CefBrowserPlatformDelegateOsr::Invalidate(cef_paint_element_type_t type) {
|
||||
view->Invalidate(type);
|
||||
}
|
||||
|
||||
void CefBrowserPlatformDelegateOsr::SendExternalBeginFrame() {
|
||||
CefRenderWidgetHostViewOSR* view = GetOSRHostView();
|
||||
if (view)
|
||||
view->SendExternalBeginFrame();
|
||||
}
|
||||
|
||||
void CefBrowserPlatformDelegateOsr::SetWindowlessFrameRate(int frame_rate) {
|
||||
CefRenderWidgetHostViewOSR* view = GetOSRHostView();
|
||||
if (view)
|
||||
|
Reference in New Issue
Block a user