Linux: Add OSR use_external_begin_frame support (see issue #1006)

This commit is contained in:
Riku Palomäki 2019-03-18 21:07:02 +00:00 committed by Marshall Greenblatt
parent 531df6eaba
commit a48e072076
4 changed files with 9 additions and 4 deletions

View File

@ -46,7 +46,7 @@ std::unique_ptr<CefBrowserPlatformDelegateNative> CreateNativeDelegate(
window_info, background_color);
#elif defined(OS_LINUX)
return std::make_unique<CefBrowserPlatformDelegateNativeLinux>(
window_info, background_color);
window_info, background_color, use_external_begin_frame);
#endif
}

View File

@ -41,11 +41,12 @@ long GetSystemUptime() {
CefBrowserPlatformDelegateNativeLinux::CefBrowserPlatformDelegateNativeLinux(
const CefWindowInfo& window_info,
SkColor background_color)
SkColor background_color,
bool use_external_begin_frame)
: CefBrowserPlatformDelegateNative(window_info,
background_color,
false,
false),
use_external_begin_frame),
host_window_created_(false),
window_widget_(nullptr),
window_x11_(nullptr) {}

View File

@ -14,7 +14,8 @@ class CefBrowserPlatformDelegateNativeLinux
: public CefBrowserPlatformDelegateNative {
public:
CefBrowserPlatformDelegateNativeLinux(const CefWindowInfo& window_info,
SkColor background_color);
SkColor background_color,
bool use_external_begin_frame);
// CefBrowserPlatformDelegate methods:
void BrowserDestroyed(CefBrowserHostImpl* browser) override;

View File

@ -1323,6 +1323,9 @@ void CefRenderWidgetHostViewOSR::SendExternalBeginFrame() {
DCHECK(begin_frame_args.IsValid());
begin_frame_number_++;
if (render_widget_host_)
render_widget_host_->ProgressFlingIfNeeded(frame_time);
if (renderer_compositor_frame_sink_) {
GetCompositor()->context_factory_private()->IssueExternalBeginFrame(
GetCompositor(), begin_frame_args);