Merge pull request #6741 from MaxWhere/native-window-widget-mac
Offscreen rendering fixes for macOS
This commit is contained in:
commit
b6becdeae7
2 changed files with 3 additions and 24 deletions
|
@ -177,7 +177,7 @@ class OffScreenRenderWidgetHostView
|
||||||
// ui::AcceleratedWidgetMacNSView:
|
// ui::AcceleratedWidgetMacNSView:
|
||||||
NSView* AcceleratedWidgetGetNSView() const override;
|
NSView* AcceleratedWidgetGetNSView() const override;
|
||||||
void AcceleratedWidgetGetVSyncParameters(
|
void AcceleratedWidgetGetVSyncParameters(
|
||||||
base::TimeTicks* timebase, base::TimeDelta* interval) const override;
|
base::TimeTicks* timebase, base::TimeDelta* interval) const override;
|
||||||
void AcceleratedWidgetSwapCompleted() override;
|
void AcceleratedWidgetSwapCompleted() override;
|
||||||
#endif // defined(OS_MACOSX)
|
#endif // defined(OS_MACOSX)
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
#include "base/strings/utf_string_conversions.h"
|
#include "base/strings/utf_string_conversions.h"
|
||||||
#include "ui/accelerated_widget_mac/accelerated_widget_mac.h"
|
|
||||||
|
|
||||||
ui::AcceleratedWidgetMac*
|
ui::AcceleratedWidgetMac*
|
||||||
atom::OffScreenRenderWidgetHostView::GetAcceleratedWidgetMac() const {
|
atom::OffScreenRenderWidgetHostView::GetAcceleratedWidgetMac() const {
|
||||||
|
@ -16,9 +15,8 @@ atom::OffScreenRenderWidgetHostView::GetAcceleratedWidgetMac() const {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
NSView* atom::OffScreenRenderWidgetHostView::AcceleratedWidgetGetNSView()
|
NSView* atom::OffScreenRenderWidgetHostView::AcceleratedWidgetGetNSView() const {
|
||||||
const {
|
return [native_window_->GetNativeWindow() contentView];
|
||||||
return [window_ contentView];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void atom::OffScreenRenderWidgetHostView::AcceleratedWidgetGetVSyncParameters(
|
void atom::OffScreenRenderWidgetHostView::AcceleratedWidgetGetVSyncParameters(
|
||||||
|
@ -72,17 +70,6 @@ void atom::OffScreenRenderWidgetHostView::SelectionChanged(
|
||||||
}
|
}
|
||||||
|
|
||||||
void atom::OffScreenRenderWidgetHostView::CreatePlatformWidget() {
|
void atom::OffScreenRenderWidgetHostView::CreatePlatformWidget() {
|
||||||
window_ = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 1, 1)
|
|
||||||
styleMask:NSBorderlessWindowMask
|
|
||||||
backing:NSBackingStoreBuffered
|
|
||||||
defer:NO];
|
|
||||||
|
|
||||||
background_layer_ = [[[CALayer alloc] init] retain];
|
|
||||||
[background_layer_ setBackgroundColor:CGColorGetConstantColor(kCGColorClear)];
|
|
||||||
NSView* content_view = [window_ contentView];
|
|
||||||
[content_view setLayer:background_layer_];
|
|
||||||
[content_view setWantsLayer:YES];
|
|
||||||
|
|
||||||
browser_compositor_ = content::BrowserCompositorMac::Create();
|
browser_compositor_ = content::BrowserCompositorMac::Create();
|
||||||
|
|
||||||
compositor_.reset(browser_compositor_->compositor());
|
compositor_.reset(browser_compositor_->compositor());
|
||||||
|
@ -95,19 +82,11 @@ void atom::OffScreenRenderWidgetHostView::CreatePlatformWidget() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void atom::OffScreenRenderWidgetHostView::DestroyPlatformWidget() {
|
void atom::OffScreenRenderWidgetHostView::DestroyPlatformWidget() {
|
||||||
DCHECK(window_);
|
|
||||||
|
|
||||||
ui::Compositor* compositor = compositor_.release();
|
ui::Compositor* compositor = compositor_.release();
|
||||||
ALLOW_UNUSED_LOCAL(compositor);
|
ALLOW_UNUSED_LOCAL(compositor);
|
||||||
|
|
||||||
[window_ close];
|
|
||||||
window_ = nil;
|
|
||||||
[background_layer_ release];
|
|
||||||
background_layer_ = nil;
|
|
||||||
|
|
||||||
browser_compositor_->accelerated_widget_mac()->ResetNSView();
|
browser_compositor_->accelerated_widget_mac()->ResetNSView();
|
||||||
browser_compositor_->compositor()->SetVisible(false);
|
browser_compositor_->compositor()->SetVisible(false);
|
||||||
browser_compositor_->compositor()->SetScaleAndSize(1.0, gfx::Size(0, 0));
|
browser_compositor_->compositor()->SetScaleAndSize(1.0, gfx::Size(0, 0));
|
||||||
browser_compositor_->compositor()->SetRootLayer(NULL);
|
browser_compositor_->compositor()->SetRootLayer(NULL);
|
||||||
content::BrowserCompositorMac::Recycle(std::move(browser_compositor_));
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue