Diff
Modified: trunk/Source/WebCore/ChangeLog (269083 => 269084)
--- trunk/Source/WebCore/ChangeLog 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/ChangeLog 2020-10-28 01:36:51 UTC (rev 269084)
@@ -1,3 +1,39 @@
+2020-10-27 Said Abou-Hallawa <s...@apple.com>
+
+ Make RenderingMode a bool enum and remove ShouldAccelerate
+ https://bugs.webkit.org/show_bug.cgi?id=218264
+
+ Reviewed by Tim Horton.
+
+ Convert RenderingMode back to be a bool enum. ShouldAccelerate will be
+ removed so no conversion from RenderingMode to ShouldAccelerate and vice
+ versa is needed anymore. Only one instance of ImageBuffer::create() will
+ be handling creating the remote and display list ImageBuffers.
+
+ -- Remove unused createImageBuffer() method in HostWindow and ChromeClient.
+ -- Remove unused argument 'ShouldUseDisplayList' from createImageBuffer()
+ of HostWindow, ChromeClient and WebChromeClient.
+
+ * html/HTMLCanvasElement.cpp:
+ (WebCore::HTMLCanvasElement::createImageBuffer const):
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::createBufferForPainting const):
+ * html/HTMLVideoElement.h:
+ * html/ImageBitmap.cpp:
+ (WebCore::ImageBitmap::createPromise):
+ * html/canvas/CanvasRenderingContext2DBase.cpp:
+ (WebCore::CanvasRenderingContext2DBase::createPattern):
+ * page/Chrome.cpp:
+ (WebCore::Chrome::createImageBuffer const):
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+ (WebCore::ChromeClient::createImageBuffer const):
+ * platform/HostWindow.h:
+ * platform/graphics/ImageBuffer.cpp:
+ (WebCore::ImageBuffer::create):
+ * platform/graphics/ImageBuffer.h:
+ * platform/graphics/RenderingMode.h:
+
2020-10-27 Chris Dumez <cdu...@apple.com>
AudioBuffer.getChannelData(x) should keep returning the same JS wrapper for a given channel
Modified: trunk/Source/WebCore/html/HTMLCanvasElement.cpp (269083 => 269084)
--- trunk/Source/WebCore/html/HTMLCanvasElement.cpp 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/html/HTMLCanvasElement.cpp 2020-10-28 01:36:51 UTC (rev 269084)
@@ -936,10 +936,10 @@
auto hostWindow = (document().view() && document().view()->root()) ? document().view()->root()->hostWindow() : nullptr;
- auto accelerate = shouldAccelerate(size()) ? ShouldAccelerate::Yes : ShouldAccelerate::No;
+ auto renderingMode = shouldAccelerate(size()) ? RenderingMode::Accelerated : RenderingMode::Unaccelerated;
// FIXME: Add a new setting for DisplayList drawing on canvas.
auto useDisplayList = m_usesDisplayListDrawing.valueOr(document().settings().displayListDrawingEnabled()) ? ShouldUseDisplayList::Yes : ShouldUseDisplayList::No;
- setImageBuffer(ImageBuffer::create(size(), accelerate, useDisplayList, RenderingPurpose::Canvas, 1, ColorSpace::SRGB, hostWindow));
+ setImageBuffer(ImageBuffer::create(size(), renderingMode, useDisplayList, RenderingPurpose::Canvas, 1, ColorSpace::SRGB, hostWindow));
if (buffer() && buffer()->drawingContext())
buffer()->drawingContext()->setTracksDisplayListReplay(m_tracksDisplayListReplay);
Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (269083 => 269084)
--- trunk/Source/WebCore/html/HTMLVideoElement.cpp 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp 2020-10-28 01:36:51 UTC (rev 269084)
@@ -291,11 +291,11 @@
setDisplayMode(Poster);
}
-std::unique_ptr<ImageBuffer> HTMLVideoElement::createBufferForPainting(const FloatSize& size, ShouldAccelerate shouldAccelerate) const
+std::unique_ptr<ImageBuffer> HTMLVideoElement::createBufferForPainting(const FloatSize& size, RenderingMode renderingMode) const
{
auto* hostWindow = document().view() && document().view()->root() ? document().view()->root()->hostWindow() : nullptr;
auto shouldUseDisplayList = document().settings().displayListDrawingEnabled() ? ShouldUseDisplayList::Yes : ShouldUseDisplayList::No;
- return ImageBuffer::create(size, shouldAccelerate, shouldUseDisplayList, RenderingPurpose::MediaPainting, 1, ColorSpace::SRGB, hostWindow);
+ return ImageBuffer::create(size, renderingMode, shouldUseDisplayList, RenderingPurpose::MediaPainting, 1, ColorSpace::SRGB, hostWindow);
}
void HTMLVideoElement::paintCurrentFrameInContext(GraphicsContext& context, const FloatRect& destRect)
Modified: trunk/Source/WebCore/html/HTMLVideoElement.h (269083 => 269084)
--- trunk/Source/WebCore/html/HTMLVideoElement.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/html/HTMLVideoElement.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -38,7 +38,7 @@
class RenderVideo;
class PictureInPictureObserver;
-enum class ShouldAccelerate : bool;
+enum class RenderingMode : bool;
class HTMLVideoElement final : public HTMLMediaElement, public Supplementable<HTMLVideoElement> {
WTF_MAKE_ISO_ALLOCATED(HTMLVideoElement);
@@ -70,7 +70,7 @@
void webkitRequestFullscreen() override;
#endif
- std::unique_ptr<ImageBuffer> createBufferForPainting(const FloatSize&, ShouldAccelerate) const;
+ std::unique_ptr<ImageBuffer> createBufferForPainting(const FloatSize&, RenderingMode) const;
// Used by canvas to gain raw pixel access
void paintCurrentFrameInContext(GraphicsContext&, const FloatRect&);
Modified: trunk/Source/WebCore/html/ImageBitmap.cpp (269083 => 269084)
--- trunk/Source/WebCore/html/ImageBitmap.cpp 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/html/ImageBitmap.cpp 2020-10-28 01:36:51 UTC (rev 269084)
@@ -487,7 +487,7 @@
auto sourceRectangle = maybeSourceRectangle.releaseReturnValue();
auto outputSize = outputSizeForSourceRectangle(sourceRectangle, options);
- auto bitmapData = video->createBufferForPainting(outputSize, bufferRenderingMode == RenderingMode::Accelerated ? ShouldAccelerate::Yes : ShouldAccelerate::No);
+ auto bitmapData = video->createBufferForPainting(outputSize, bufferRenderingMode);
if (!bitmapData) {
resolveWithBlankImageBuffer(!taintsOrigin(scriptExecutionContext.securityOrigin(), *video), WTFMove(promise));
return;
Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp (269083 => 269084)
--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp 2020-10-28 01:36:51 UTC (rev 269084)
@@ -1945,8 +1945,8 @@
return RefPtr<CanvasPattern> { CanvasPattern::create(BitmapImage::create(WTFMove(nativeImage)), repeatX, repeatY, originClean) };
#endif
- auto shouldAccelerate = !drawingContext() || drawingContext()->isAcceleratedContext() ? ShouldAccelerate::Yes : ShouldAccelerate::No;
- auto imageBuffer = videoElement.createBufferForPainting(size(videoElement), shouldAccelerate);
+ auto renderingMode = !drawingContext() || drawingContext()->isAcceleratedContext() ? RenderingMode::Accelerated : RenderingMode::Unaccelerated;
+ auto imageBuffer = videoElement.createBufferForPainting(size(videoElement), renderingMode);
if (!imageBuffer)
return nullptr;
Modified: trunk/Source/WebCore/page/Chrome.cpp (269083 => 269084)
--- trunk/Source/WebCore/page/Chrome.cpp 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/page/Chrome.cpp 2020-10-28 01:36:51 UTC (rev 269084)
@@ -523,16 +523,11 @@
m_client.setCursorHiddenUntilMouseMoves(hiddenUntilMouseMoves);
}
-std::unique_ptr<ImageBuffer> Chrome::createImageBuffer(const FloatSize& size, ShouldAccelerate shouldAccelerate, ShouldUseDisplayList shouldUseDisplayList, RenderingPurpose purpose, float resolutionScale, ColorSpace colorSpace) const
+std::unique_ptr<ImageBuffer> Chrome::createImageBuffer(const FloatSize& size, RenderingMode renderingMode, RenderingPurpose purpose, float resolutionScale, ColorSpace colorSpace) const
{
- return m_client.createImageBuffer(size, shouldAccelerate, shouldUseDisplayList, purpose, resolutionScale, colorSpace);
+ return m_client.createImageBuffer(size, renderingMode, purpose, resolutionScale, colorSpace);
}
-std::unique_ptr<ImageBuffer> Chrome::createImageBuffer(const FloatSize& size, RenderingMode renderingMode, float resolutionScale, ColorSpace colorSpace) const
-{
- return m_client.createImageBuffer(size, renderingMode, resolutionScale, colorSpace);
-}
-
PlatformDisplayID Chrome::displayID() const
{
return m_page.displayID();
Modified: trunk/Source/WebCore/page/Chrome.h (269083 => 269084)
--- trunk/Source/WebCore/page/Chrome.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/page/Chrome.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -84,8 +84,7 @@
void setCursor(const Cursor&) override;
void setCursorHiddenUntilMouseMoves(bool) override;
- std::unique_ptr<ImageBuffer> createImageBuffer(const FloatSize&, ShouldAccelerate, ShouldUseDisplayList, RenderingPurpose, float resolutionScale, ColorSpace) const override;
- std::unique_ptr<ImageBuffer> createImageBuffer(const FloatSize&, RenderingMode, float resolutionScale, ColorSpace) const override;
+ std::unique_ptr<ImageBuffer> createImageBuffer(const FloatSize&, RenderingMode, RenderingPurpose, float resolutionScale, ColorSpace) const override;
PlatformDisplayID displayID() const override;
void windowScreenDidChange(PlatformDisplayID, Optional<unsigned>) override;
Modified: trunk/Source/WebCore/page/ChromeClient.h (269083 => 269084)
--- trunk/Source/WebCore/page/ChromeClient.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/page/ChromeClient.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -323,8 +323,7 @@
virtual RefPtr<DisplayRefreshMonitor> createDisplayRefreshMonitor(PlatformDisplayID) const { return nullptr; }
- virtual std::unique_ptr<ImageBuffer> createImageBuffer(const FloatSize&, ShouldAccelerate, ShouldUseDisplayList, RenderingPurpose, float, ColorSpace) const { return nullptr; }
- virtual std::unique_ptr<ImageBuffer> createImageBuffer(const FloatSize&, RenderingMode, float, ColorSpace) const { return nullptr; }
+ virtual std::unique_ptr<ImageBuffer> createImageBuffer(const FloatSize&, RenderingMode, RenderingPurpose, float, ColorSpace) const { return nullptr; }
// Pass nullptr as the GraphicsLayer to detatch the root layer.
virtual void attachRootGraphicsLayer(Frame&, GraphicsLayer*) = 0;
Modified: trunk/Source/WebCore/platform/HostWindow.h (269083 => 269084)
--- trunk/Source/WebCore/platform/HostWindow.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/platform/HostWindow.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -33,9 +33,7 @@
class ImageBuffer;
enum class ColorSpace : uint8_t;
-enum class RenderingMode : uint8_t;
-enum class ShouldAccelerate : bool;
-enum class ShouldUseDisplayList : bool;
+enum class RenderingMode : bool;
enum class RenderingPurpose : uint8_t;
class HostWindow {
@@ -62,8 +60,7 @@
virtual IntPoint accessibilityScreenToRootView(const IntPoint&) const = 0;
virtual IntRect rootViewToAccessibilityScreen(const IntRect&) const = 0;
- virtual std::unique_ptr<ImageBuffer> createImageBuffer(const FloatSize&, ShouldAccelerate, ShouldUseDisplayList, RenderingPurpose, float resolutionScale, ColorSpace) const = 0;
- virtual std::unique_ptr<ImageBuffer> createImageBuffer(const FloatSize&, RenderingMode, float resolutionScale, ColorSpace) const = 0;
+ virtual std::unique_ptr<ImageBuffer> createImageBuffer(const FloatSize&, RenderingMode, RenderingPurpose, float resolutionScale, ColorSpace) const = 0;
// Method for retrieving the native client of the page.
virtual PlatformPageClient platformPageClient() const = 0;
Modified: trunk/Source/WebCore/platform/graphics/ImageBuffer.cpp (269083 => 269084)
--- trunk/Source/WebCore/platform/graphics/ImageBuffer.cpp 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/platform/graphics/ImageBuffer.cpp 2020-10-28 01:36:51 UTC (rev 269084)
@@ -38,21 +38,23 @@
static const float MaxClampedLength = 4096;
static const float MaxClampedArea = MaxClampedLength * MaxClampedLength;
-std::unique_ptr<ImageBuffer> ImageBuffer::create(const FloatSize& size, ShouldAccelerate shouldAccelerate, ShouldUseDisplayList shouldUseDisplayList, RenderingPurpose purpose, float resolutionScale, ColorSpace colorSpace, const HostWindow* hostWindow)
+std::unique_ptr<ImageBuffer> ImageBuffer::create(const FloatSize& size, RenderingMode renderingMode, ShouldUseDisplayList shouldUseDisplayList, RenderingPurpose purpose, float resolutionScale, ColorSpace colorSpace, const HostWindow* hostWindow)
{
std::unique_ptr<ImageBuffer> imageBuffer;
if (hostWindow)
- imageBuffer = hostWindow->createImageBuffer(size, shouldAccelerate, shouldUseDisplayList, purpose, resolutionScale, colorSpace);
+ imageBuffer = hostWindow->createImageBuffer(size, renderingMode, purpose, resolutionScale, colorSpace);
- if (!imageBuffer) {
- RenderingMode mode;
- if (shouldUseDisplayList == ShouldUseDisplayList::Yes)
- mode = shouldAccelerate == ShouldAccelerate::Yes ? RenderingMode::DisplayListAccelerated : RenderingMode::DisplayListUnaccelerated;
- else
- mode = shouldAccelerate == ShouldAccelerate::Yes ? RenderingMode::Accelerated : RenderingMode::Unaccelerated;
- imageBuffer = ImageBuffer::create(size, mode, resolutionScale, colorSpace, hostWindow);
+ if (!imageBuffer && shouldUseDisplayList == ShouldUseDisplayList::Yes) {
+ if (renderingMode == RenderingMode::Accelerated)
+ imageBuffer = DisplayListAcceleratedImageBuffer::create(size, resolutionScale, colorSpace, hostWindow);
+
+ if (!imageBuffer)
+ imageBuffer = DisplayListUnacceleratedImageBuffer::create(size, resolutionScale, colorSpace, hostWindow);
}
+ if (!imageBuffer)
+ imageBuffer = ImageBuffer::create(size, renderingMode, resolutionScale, colorSpace, hostWindow);
+
return imageBuffer;
}
@@ -59,31 +61,13 @@
std::unique_ptr<ImageBuffer> ImageBuffer::create(const FloatSize& size, RenderingMode renderingMode, float resolutionScale, ColorSpace colorSpace, const HostWindow* hostWindow)
{
std::unique_ptr<ImageBuffer> imageBuffer;
-
- switch (renderingMode) {
- case RenderingMode::Accelerated:
+
+ if (renderingMode == RenderingMode::Accelerated)
imageBuffer = AcceleratedImageBuffer::create(size, resolutionScale, colorSpace, hostWindow);
- FALLTHROUGH;
- case RenderingMode::Unaccelerated:
- if (!imageBuffer)
- imageBuffer = UnacceleratedImageBuffer::create(size, resolutionScale, colorSpace, hostWindow);
- break;
+
+ if (!imageBuffer)
+ imageBuffer = UnacceleratedImageBuffer::create(size, resolutionScale, colorSpace, hostWindow);
- case RenderingMode::DisplayListAccelerated:
- imageBuffer = DisplayListAcceleratedImageBuffer::create(size, resolutionScale, colorSpace, hostWindow);
- FALLTHROUGH;
- case RenderingMode::DisplayListUnaccelerated:
- if (!imageBuffer)
- imageBuffer = DisplayListUnacceleratedImageBuffer::create(size, resolutionScale, colorSpace, hostWindow);
- break;
-
- case RenderingMode::RemoteAccelerated:
- case RenderingMode::RemoteUnaccelerated:
- if (hostWindow)
- imageBuffer = hostWindow->createImageBuffer(size, renderingMode, resolutionScale, colorSpace);
- break;
- }
-
return imageBuffer;
}
@@ -90,30 +74,13 @@
std::unique_ptr<ImageBuffer> ImageBuffer::create(const FloatSize& size, const GraphicsContext& context)
{
std::unique_ptr<ImageBuffer> imageBuffer;
-
- switch (context.renderingMode()) {
- case RenderingMode::Accelerated:
+
+ if (context.renderingMode() == RenderingMode::Accelerated)
imageBuffer = AcceleratedImageBuffer::create(size, context);
- FALLTHROUGH;
- case RenderingMode::Unaccelerated:
- if (!imageBuffer)
- imageBuffer = UnacceleratedImageBuffer::create(size, context);
- break;
+
+ if (!imageBuffer)
+ imageBuffer = UnacceleratedImageBuffer::create(size, context);
- case RenderingMode::DisplayListAccelerated:
- imageBuffer = DisplayListAcceleratedImageBuffer::create(size, context);
- FALLTHROUGH;
- case RenderingMode::DisplayListUnaccelerated:
- if (!imageBuffer)
- imageBuffer = DisplayListUnacceleratedImageBuffer::create(size, context);
- break;
-
- case RenderingMode::RemoteUnaccelerated:
- case RenderingMode::RemoteAccelerated:
- ASSERT_NOT_REACHED();
- break;
- }
-
return imageBuffer;
}
Modified: trunk/Source/WebCore/platform/graphics/ImageBuffer.h (269083 => 269084)
--- trunk/Source/WebCore/platform/graphics/ImageBuffer.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/platform/graphics/ImageBuffer.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -41,7 +41,7 @@
class ImageBuffer {
public:
// Will return a null pointer on allocation failure.
- WEBCORE_EXPORT static std::unique_ptr<ImageBuffer> create(const FloatSize&, ShouldAccelerate, ShouldUseDisplayList, RenderingPurpose, float resolutionScale = 1, ColorSpace = ColorSpace::SRGB, const HostWindow* = nullptr);
+ WEBCORE_EXPORT static std::unique_ptr<ImageBuffer> create(const FloatSize&, RenderingMode, ShouldUseDisplayList, RenderingPurpose, float resolutionScale = 1, ColorSpace = ColorSpace::SRGB, const HostWindow* = nullptr);
WEBCORE_EXPORT static std::unique_ptr<ImageBuffer> create(const FloatSize&, RenderingMode, float resolutionScale = 1, ColorSpace = ColorSpace::SRGB, const HostWindow* = nullptr);
static std::unique_ptr<ImageBuffer> create(const FloatSize&, const GraphicsContext&);
Modified: trunk/Source/WebCore/platform/graphics/RenderingMode.h (269083 => 269084)
--- trunk/Source/WebCore/platform/graphics/RenderingMode.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebCore/platform/graphics/RenderingMode.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -33,16 +33,7 @@
MediaPainting
};
-enum class ShouldAccelerate : bool { No, Yes };
enum class ShouldUseDisplayList : bool { No, Yes };
+enum class RenderingMode : bool { Unaccelerated, Accelerated };
-enum class RenderingMode : uint8_t {
- Accelerated,
- Unaccelerated,
- DisplayListAccelerated,
- DisplayListUnaccelerated,
- RemoteAccelerated,
- RemoteUnaccelerated
-};
-
} // namespace WebCore
Modified: trunk/Source/WebKit/ChangeLog (269083 => 269084)
--- trunk/Source/WebKit/ChangeLog 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebKit/ChangeLog 2020-10-28 01:36:51 UTC (rev 269084)
@@ -1,3 +1,26 @@
+2020-10-27 Said Abou-Hallawa <s...@apple.com>
+
+ Make RenderingMode a bool enum and remove ShouldAccelerate
+ https://bugs.webkit.org/show_bug.cgi?id=218264
+
+ Reviewed by Tim Horton.
+
+ When creating a remote ImageBuffer in WebKit, all we need to know is whether
+ the backend is accelerated or not. RemoteImageBufferProxy has to be backed
+ by a DisplayList. RemoteImageBuffer has to own the real backend. Two enum
+ values for RenderingMode is sufficient for creating the remote ImageBuffer.
+
+ * GPUProcess/graphics/RemoteRenderingBackend.cpp:
+ (WebKit::RemoteRenderingBackend::createImageBuffer):
+ * GPUProcess/graphics/RemoteRenderingBackend.h:
+ * Shared/WebCoreArgumentCoders.h:
+ * WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
+ (WebKit::RemoteRenderingBackendProxy::createImageBuffer):
+ * WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::createImageBuffer const):
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+
2020-10-27 Tim Horton <timothy_hor...@apple.com>
Adopt the UIPointerInteraction API
Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp (269083 => 269084)
--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2020-10-28 01:36:51 UTC (rev 269084)
@@ -122,11 +122,11 @@
void RemoteRenderingBackend::createImageBuffer(const FloatSize& logicalSize, RenderingMode renderingMode, float resolutionScale, ColorSpace colorSpace, WebCore::RenderingResourceIdentifier renderingResourceIdentifier)
{
- ASSERT(renderingMode == RenderingMode::RemoteAccelerated || renderingMode == RenderingMode::RemoteUnaccelerated);
+ ASSERT(renderingMode == RenderingMode::Accelerated || renderingMode == RenderingMode::Unaccelerated);
std::unique_ptr<WebCore::ImageBuffer> image;
- if (renderingMode == RenderingMode::RemoteAccelerated)
+ if (renderingMode == RenderingMode::Accelerated)
image = AcceleratedRemoteImageBuffer::create(logicalSize, resolutionScale, colorSpace, *this, renderingResourceIdentifier);
if (!image)
Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h (269083 => 269084)
--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -46,7 +46,7 @@
}
class FloatSize;
enum class ColorSpace : uint8_t;
-enum class RenderingMode : uint8_t;
+enum class RenderingMode : bool;
}
namespace WebKit {
Modified: trunk/Source/WebKit/Shared/WebCoreArgumentCoders.h (269083 => 269084)
--- trunk/Source/WebKit/Shared/WebCoreArgumentCoders.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebKit/Shared/WebCoreArgumentCoders.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -889,12 +889,8 @@
template<> struct EnumTraits<WebCore::RenderingMode> {
using values = EnumValues<
WebCore::RenderingMode,
- WebCore::RenderingMode::Accelerated,
WebCore::RenderingMode::Unaccelerated,
- WebCore::RenderingMode::DisplayListAccelerated,
- WebCore::RenderingMode::DisplayListUnaccelerated,
- WebCore::RenderingMode::RemoteAccelerated,
- WebCore::RenderingMode::RemoteUnaccelerated
+ WebCore::RenderingMode::Accelerated
>;
};
Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp (269083 => 269084)
--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp 2020-10-28 01:36:51 UTC (rev 269084)
@@ -87,20 +87,15 @@
return connection->waitForAndDispatchImmediately<Messages::RemoteRenderingBackendProxy::FlushDisplayListWasCommitted>(m_renderingBackendIdentifier, 1_s, IPC::WaitForOption::InterruptWaitingIfSyncMessageArrives);
}
-std::unique_ptr<ImageBuffer> RemoteRenderingBackendProxy::createImageBuffer(const FloatSize& size, ShouldAccelerate shouldAccelerate, float resolutionScale, ColorSpace colorSpace)
+std::unique_ptr<ImageBuffer> RemoteRenderingBackendProxy::createImageBuffer(const FloatSize& size, RenderingMode renderingMode, float resolutionScale, ColorSpace colorSpace)
{
- RenderingMode renderingMode;
std::unique_ptr<WebCore::ImageBuffer> imageBuffer;
- if (shouldAccelerate == ShouldAccelerate::Yes) {
- renderingMode = RenderingMode::RemoteAccelerated;
+ if (renderingMode == RenderingMode::Accelerated)
imageBuffer = AcceleratedRemoteImageBufferProxy::create(size, resolutionScale, *this);
- }
- if (!imageBuffer) {
- renderingMode = RenderingMode::RemoteUnaccelerated;
+ if (!imageBuffer)
imageBuffer = UnacceleratedRemoteImageBufferProxy::create(size, resolutionScale, *this);
- }
if (imageBuffer) {
send(Messages::RemoteRenderingBackend::CreateImageBuffer(size, renderingMode, resolutionScale, colorSpace, imageBuffer->renderingResourceIdentifier()), m_renderingBackendIdentifier);
Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h (269083 => 269084)
--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -45,8 +45,7 @@
class ImageData;
enum class AlphaPremultiplication : uint8_t;
enum class ColorSpace : uint8_t;
-enum class RenderingMode : uint8_t;
-enum class ShouldAccelerate : bool;
+enum class RenderingMode : bool;
}
namespace WebKit {
@@ -70,7 +69,7 @@
void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;
// Messages to be sent.
- std::unique_ptr<WebCore::ImageBuffer> createImageBuffer(const WebCore::FloatSize&, WebCore::ShouldAccelerate, float resolutionScale, WebCore::ColorSpace);
+ std::unique_ptr<WebCore::ImageBuffer> createImageBuffer(const WebCore::FloatSize&, WebCore::RenderingMode, float resolutionScale, WebCore::ColorSpace);
RefPtr<WebCore::ImageData> getImageData(WebCore::AlphaPremultiplication outputFormat, const WebCore::IntRect& srcRect, WebCore::RenderingResourceIdentifier);
void flushDisplayList(const WebCore::DisplayList::DisplayList&, WebCore::RenderingResourceIdentifier);
DisplayListFlushIdentifier flushDisplayListAndCommit(const WebCore::DisplayList::DisplayList&, WebCore::RenderingResourceIdentifier);
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (269083 => 269084)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp 2020-10-28 01:36:51 UTC (rev 269084)
@@ -906,12 +906,12 @@
return *m_remoteRenderingBackendProxy;
}
-std::unique_ptr<ImageBuffer> WebChromeClient::createImageBuffer(const FloatSize& size, ShouldAccelerate shouldAccelerate, ShouldUseDisplayList shouldUseDisplayList, RenderingPurpose purpose, float resolutionScale, ColorSpace colorSpace) const
+std::unique_ptr<ImageBuffer> WebChromeClient::createImageBuffer(const FloatSize& size, RenderingMode renderingMode, RenderingPurpose purpose, float resolutionScale, ColorSpace colorSpace) const
{
if (!m_page.shouldUseRemoteRenderingFor(purpose))
return nullptr;
- return ensureRemoteRenderingBackendProxy().createImageBuffer(size, shouldAccelerate, resolutionScale, colorSpace);
+ return ensureRemoteRenderingBackendProxy().createImageBuffer(size, renderingMode, resolutionScale, colorSpace);
}
#endif // ENABLE(GPU_PROCESS)
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h (269083 => 269084)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h 2020-10-28 01:00:35 UTC (rev 269083)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h 2020-10-28 01:36:51 UTC (rev 269084)
@@ -244,7 +244,7 @@
#if ENABLE(GPU_PROCESS)
RemoteRenderingBackendProxy& ensureRemoteRenderingBackendProxy() const;
- std::unique_ptr<WebCore::ImageBuffer> createImageBuffer(const WebCore::FloatSize&, WebCore::ShouldAccelerate, WebCore::ShouldUseDisplayList, WebCore::RenderingPurpose, float resolutionScale, WebCore::ColorSpace) const final;
+ std::unique_ptr<WebCore::ImageBuffer> createImageBuffer(const WebCore::FloatSize&, WebCore::RenderingMode, WebCore::RenderingPurpose, float resolutionScale, WebCore::ColorSpace) const final;
#endif
CompositingTriggerFlags allowedCompositingTriggers() const final