Skip to content

Commit

Permalink
Symbolic names for ImageBuffer backends complicate the code unneccess…
Browse files Browse the repository at this point in the history
…arily

https://bugs.webkit.org/show_bug.cgi?id=262110
rdar://116049610

Reviewed by Said Abou-Hallawa.

The symbolic names UnacceleratedImageBuffer*Backend and
AcceleratedImageBuffer*Backend were probably originally introduced
to help the caller code to create image buffers in cross-platform way.
However, the image buffer instantiation is based on global policy that
is invoked by ImageBuffer::create().

Instantiating the Accelerated image buffers is platform-specific operation,
as demonstrated by IOSurface specific parameters in ImageBufferCreationContext
amalgamation structure.

Remove the symbolic names, as they make further simplification unneccessarily
complex. Just use the normal class names inside ifdefs that already exist
at the call sites.

* Source/WebCore/Headers.cmake:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::create):
* Source/WebCore/platform/graphics/PlatformImageBuffer.h:
* Source/WebCore/platform/graphics/PlatformImageBufferBackend.h: Removed.
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::createImageBuffer):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::allocateBufferForBackingStore):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend):
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/PlatformImageBufferShareableBackend.h: Removed.
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
(WebKit::RemoteImageBufferProxy::didCreateBackend):
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
* Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp:
(WebKit::DrawingAreaWC::createImageBuffer):

Canonical link: https://commits.webkit.org/268563@main
  • Loading branch information
kkinnunen-apple committed Sep 28, 2023
1 parent 6f5dfe9 commit 18cbc28
Show file tree
Hide file tree
Showing 18 changed files with 76 additions and 125 deletions.
3 changes: 1 addition & 2 deletions Source/WebCore/Headers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1918,6 +1918,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS
platform/graphics/ImageBufferAllocator.h
platform/graphics/ImageBufferBackend.h
platform/graphics/ImageBufferBackendParameters.h
platform/graphics/ImageBufferPlatformBackend.h
platform/graphics/ImageDecoder.h
platform/graphics/ImageDecoderIdentifier.h
platform/graphics/ImageFrame.h
Expand Down Expand Up @@ -1975,8 +1976,6 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS
platform/graphics/PlatformDisplay.h
platform/graphics/PlatformGraphicsContext.h
platform/graphics/PlatformImage.h
platform/graphics/PlatformImageBuffer.h
platform/graphics/PlatformImageBufferBackend.h
platform/graphics/PlatformLayer.h
platform/graphics/PlatformLayerIdentifier.h
platform/graphics/PlatformMediaResourceLoader.h
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/PlatformMac.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -656,6 +656,7 @@ list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS
platform/graphics/cg/IOSurfacePool.h
platform/graphics/cg/ImageBufferCGBackend.h
platform/graphics/cg/ImageBufferCGBitmapBackend.h
platform/graphics/cg/ImageBufferIOSurface.h
platform/graphics/cg/ImageBufferIOSurfaceBackend.h
platform/graphics/cg/ImageBufferUtilitiesCG.h
platform/graphics/cg/PDFDocumentImage.h
Expand Down
14 changes: 6 additions & 8 deletions Source/WebCore/WebCore.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -969,7 +969,7 @@
2D6F3E901C1ECB270061DBD4 /* MockPageOverlay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D6F3E8A1C1ECB1C0061DBD4 /* MockPageOverlay.cpp */; };
2D6F3E911C1ECB2F0061DBD4 /* MockPageOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D6F3E8B1C1ECB1C0061DBD4 /* MockPageOverlay.h */; };
2D70BA1318074DDF0001908A /* PlatformCALayerCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D70BA1218074DDF0001908A /* PlatformCALayerCocoa.h */; settings = {ATTRIBUTES = (Private, ); }; };
2D7705C7255276CD001D0C94 /* PlatformImageBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3A623E17328008D741C /* PlatformImageBuffer.h */; settings = {ATTRIBUTES = (Private, ); }; };
2D7705C7255276CD001D0C94 /* ImageBufferPlatformBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3A623E17328008D741C /* ImageBufferPlatformBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2D7705C925528D34001D0C94 /* ImageBufferCGBitmapBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3AA23E1E544008D741C /* ImageBufferCGBitmapBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
2D7DA0F22435EB1900F048D1 /* WebViewVisualIdentificationOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D7DA0EF2435EB1700F048D1 /* WebViewVisualIdentificationOverlay.h */; settings = {ATTRIBUTES = (Private, ); }; };
2D7ED0AB1BAE99170043B3E5 /* TimerEventBasedMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D7ED0A91BAE99170043B3E5 /* TimerEventBasedMock.h */; };
Expand Down Expand Up @@ -2217,7 +2217,6 @@
53E29E5F167A8A1900586D3D /* InternalSettingsGenerated.h in Headers */ = {isa = PBXBuildFile; fileRef = 53E29E5D167A8A1900586D3D /* InternalSettingsGenerated.h */; };
53ED3FDE167A88E7006762E6 /* JSInternalSettingsGenerated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 53ED3FDC167A88E7006762E6 /* JSInternalSettingsGenerated.cpp */; };
53ED3FDF167A88E7006762E6 /* JSInternalSettingsGenerated.h in Headers */ = {isa = PBXBuildFile; fileRef = 53ED3FDD167A88E7006762E6 /* JSInternalSettingsGenerated.h */; };
550640AF2407582D00AAE045 /* PlatformImageBufferBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 550640AD240756DA00AAE045 /* PlatformImageBufferBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
550640B02407587E00AAE045 /* ImageBufferCGBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BAC3AD23E1E545008D741C /* ImageBufferCGBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */ = {isa = PBXBuildFile; fileRef = 550A0BC8085F6039007353D6 /* QualifiedName.h */; settings = {ATTRIBUTES = (Private, ); }; };
5546757B1FD212A9003B10B0 /* ImageSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 554675781FD1FC1A003B10B0 /* ImageSource.h */; settings = {ATTRIBUTES = (Private, ); }; };
Expand Down Expand Up @@ -11558,7 +11557,6 @@
53E29E5D167A8A1900586D3D /* InternalSettingsGenerated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InternalSettingsGenerated.h; sourceTree = "<group>"; };
53ED3FDC167A88E7006762E6 /* JSInternalSettingsGenerated.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInternalSettingsGenerated.cpp; sourceTree = "<group>"; };
53ED3FDD167A88E7006762E6 /* JSInternalSettingsGenerated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInternalSettingsGenerated.h; sourceTree = "<group>"; };
550640AD240756DA00AAE045 /* PlatformImageBufferBackend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformImageBufferBackend.h; sourceTree = "<group>"; };
550A0BC7085F6039007353D6 /* QualifiedName.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QualifiedName.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
550A0BC8085F6039007353D6 /* QualifiedName.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = QualifiedName.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
550F664522CA89BD000A3417 /* SVGSharedPrimitiveProperty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGSharedPrimitiveProperty.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -12865,7 +12863,7 @@
72BA2ACE2952354E00678507 /* ProgressBarPart.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProgressBarPart.h; sourceTree = "<group>"; };
72BAC3A423E17327008D741C /* ImageBufferBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageBufferBackend.cpp; sourceTree = "<group>"; };
72BAC3A523E17328008D741C /* ImageBufferBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageBufferBackend.h; sourceTree = "<group>"; };
72BAC3A623E17328008D741C /* PlatformImageBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformImageBuffer.h; sourceTree = "<group>"; };
72BAC3A623E17328008D741C /* ImageBufferPlatformBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageBufferPlatformBackend.h; sourceTree = "<group>"; };
72BAC3A823E1E543008D741C /* ImageBufferCGBitmapBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageBufferCGBitmapBackend.cpp; sourceTree = "<group>"; };
72BAC3A923E1E543008D741C /* ImageBufferIOSurfaceBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageBufferIOSurfaceBackend.cpp; sourceTree = "<group>"; };
72BAC3AA23E1E544008D741C /* ImageBufferCGBitmapBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageBufferCGBitmapBackend.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -13123,6 +13121,7 @@
7AF9B20918CFB5F200C64BEF /* JSVTTRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVTTRegion.h; sourceTree = "<group>"; };
7AF9B20A18CFB5F300C64BEF /* JSVTTRegionList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVTTRegionList.cpp; sourceTree = "<group>"; };
7AF9B20B18CFB5F300C64BEF /* JSVTTRegionList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVTTRegionList.h; sourceTree = "<group>"; };
7B0AA0B92AC413B6002745B6 /* IOSurfaceImageBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOSurfaceImageBuffer.h; sourceTree = "<group>"; };
7B0E6DC82AB463E4005189E8 /* NullImageBufferBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NullImageBufferBackend.h; sourceTree = "<group>"; };
7B0E6DC92AB463E4005189E8 /* NullImageBufferBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NullImageBufferBackend.cpp; sourceTree = "<group>"; };
7B10339A2549720000C8C1AC /* GraphicsContextGLCVCocoa.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContextGLCVCocoa.cpp; sourceTree = "<group>"; };
Expand Down Expand Up @@ -31910,6 +31909,7 @@
B27535320B053814002CE64F /* IntPointCG.cpp */,
B27535330B053814002CE64F /* IntRectCG.cpp */,
B27535340B053814002CE64F /* IntSizeCG.cpp */,
7B0AA0B92AC413B6002745B6 /* IOSurfaceImageBuffer.h */,
1C21E57A183ED1FF001C289D /* IOSurfacePool.cpp */,
1C21E57B183ED1FF001C289D /* IOSurfacePool.h */,
377A3A8F15EFCE9A0059F5C7 /* NativeImageCG.cpp */,
Expand Down Expand Up @@ -32161,6 +32161,7 @@
86BBA9EF2987EBF100A78986 /* ImageBufferBackendParameters.h */,
43D2598613C816F400608559 /* ImageBufferPipe.cpp */,
B2A10C910B3818BD00099AA4 /* ImageBufferPipe.h */,
72BAC3A623E17328008D741C /* ImageBufferPlatformBackend.h */,
CD19FEA71F573972000C42FB /* ImageDecoder.cpp */,
CD19FEA61F573972000C42FB /* ImageDecoder.h */,
1D47658D25CCA778007AF312 /* ImageDecoderIdentifier.h */,
Expand Down Expand Up @@ -32255,8 +32256,6 @@
BC3E62422659791700548ACD /* PlatformColorSpace.h */,
722AF2E127E1C4030078D997 /* PlatformGraphicsContext.h */,
726D56E1253AE0430002EF90 /* PlatformImage.h */,
72BAC3A623E17328008D741C /* PlatformImageBuffer.h */,
550640AD240756DA00AAE045 /* PlatformImageBufferBackend.h */,
0562F9601573F88F0031CA16 /* PlatformLayer.h */,
7A830B2F29B914D100848075 /* PlatformLayerIdentifier.h */,
CEEFCD7B19DB33DC003876D7 /* PlatformMediaResourceLoader.h */,
Expand Down Expand Up @@ -38846,6 +38845,7 @@
2D7705C925528D34001D0C94 /* ImageBufferCGBitmapBackend.h in Headers */,
727A7F3A24078B84004D2931 /* ImageBufferIOSurfaceBackend.h in Headers */,
B2A10D910B3818BD00099AA4 /* ImageBufferPipe.h in Headers */,
2D7705C7255276CD001D0C94 /* ImageBufferPlatformBackend.h in Headers */,
CD3E21DD2183444A00E66F55 /* ImageBufferUtilitiesCG.h in Headers */,
725053152972B4C300D22D5F /* ImageControlsButtonPart.h in Headers */,
44EEA100274757F100594A83 /* ImageControlsMac.h in Headers */,
Expand Down Expand Up @@ -40590,8 +40590,6 @@
515BE1951D54F5FB00DD7C68 /* PlatformGamepad.h in Headers */,
722AF2E227E1C4050078D997 /* PlatformGraphicsContext.h in Headers */,
726D56E2253AE28D0002EF90 /* PlatformImage.h in Headers */,
2D7705C7255276CD001D0C94 /* PlatformImageBuffer.h in Headers */,
550640AF2407582D00AAE045 /* PlatformImageBufferBackend.h in Headers */,
935C476809AC4D4300A6AAB4 /* PlatformKeyboardEvent.h in Headers */,
0562F9611573F88F0031CA16 /* PlatformLayer.h in Headers */,
7A830B3029B914D200848075 /* PlatformLayerIdentifier.h in Headers */,
Expand Down
8 changes: 6 additions & 2 deletions Source/WebCore/platform/graphics/ImageBuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
#include "FilterStyleTargetSwitcher.h"
#include "GraphicsContext.h"
#include "HostWindow.h"
#include "ImageBufferPlatformBackend.h"
#include "MIMETypeRegistry.h"
#include "PlatformImageBuffer.h"
#include "ProcessCapabilities.h"
#include <wtf/text/Base64.h>

Expand All @@ -47,6 +47,10 @@
#include "ImageBufferUtilitiesCairo.h"
#endif

#if HAVE(IOSURFACE)
#include "IOSurfaceImageBuffer.h"
#endif

namespace WebCore {

static const float MaxClampedLength = 4096;
Expand All @@ -71,7 +75,7 @@ RefPtr<ImageBuffer> ImageBuffer::create(const FloatSize& size, RenderingPurpose
}
#endif

return create<UnacceleratedImageBufferBackend>(size, resolutionScale, colorSpace, pixelFormat, purpose, { });
return create<ImageBufferPlatformBitmapBackend>(size, resolutionScale, colorSpace, pixelFormat, purpose, { });
}

template<typename BackendType, typename ImageBufferType, typename... Arguments>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,19 @@
#pragma once

#if USE(CG)
#include "ImageBufferCGBackend.h"
#include "ImageBufferCGBitmapBackend.h"
#elif USE(CAIRO)
#include "ImageBufferCairoBackend.h"
#include "ImageBufferCairoImageSurfaceBackend.h"
#endif

namespace WebCore {

#if USE(CG)
using PlatformImageBufferBackend = ImageBufferCGBackend;
using ImageBufferPlatformBackend = ImageBufferCGBackend;
using ImageBufferPlatformBitmapBackend = ImageBufferCGBitmapBackend;
#elif USE(CAIRO)
using PlatformImageBufferBackend = ImageBufferCairoBackend;
using ImageBufferPlatformBackend = ImageBufferCairoBackend;
using ImageBufferPlatformBitmapBackend = ImageBufferCairoImageSurfaceBackend;
#endif

} // namespace WebCore
Original file line number Diff line number Diff line change
Expand Up @@ -26,32 +26,10 @@
#pragma once

#include "ImageBuffer.h"

#if USE(CG)
#include "ImageBufferCGBitmapBackend.h"
#elif USE(CAIRO)
#include "ImageBufferCairoImageSurfaceBackend.h"
#endif

#if HAVE(IOSURFACE)
#include "ImageBufferIOSurfaceBackend.h"
#endif

namespace WebCore {

#if USE(CG)
using UnacceleratedImageBufferBackend = ImageBufferCGBitmapBackend;
#elif USE(CAIRO)
using UnacceleratedImageBufferBackend = ImageBufferCairoImageSurfaceBackend;
#endif

#if HAVE(IOSURFACE)
using AcceleratedImageBufferBackend = ImageBufferIOSurfaceBackend;
#else
using AcceleratedImageBufferBackend = UnacceleratedImageBufferBackend;
#endif

#if HAVE(IOSURFACE)
class IOSurfaceImageBuffer final : public ImageBuffer {
public:
static auto create(const FloatSize& size, float resolutionScale, const DestinationColorSpace& colorSpace, PixelFormat pixelFormat, RenderingPurpose purpose, const ImageBufferCreationContext& creationContext = { })
Expand All @@ -69,12 +47,9 @@ class IOSurfaceImageBuffer final : public ImageBuffer {
protected:
using ImageBuffer::ImageBuffer;
};
#endif

} // namespace WebCore

#if HAVE(IOSURFACE)
SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::IOSurfaceImageBuffer)
static bool isType(const WebCore::ImageBuffer& buffer) { return buffer.renderingMode() == WebCore::RenderingMode::Accelerated; }
SPECIALIZE_TYPE_TRAITS_END()
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

#if USE(CORE_IMAGE)

#import "PlatformImageBuffer.h"
#import "IOSurfaceImageBuffer.h"
#import <CoreImage/CIContext.h>
#import <CoreImage/CoreImage.h>
#import <wtf/NeverDestroyed.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#if USE(CORE_IMAGE)

#import "FilterImage.h"
#import "PlatformImageBuffer.h"
#import "IOSurfaceImageBuffer.h"
#import <CoreImage/CIContext.h>
#import <CoreImage/CIFilter.h>
#import <CoreImage/CoreImage.h>
Expand Down
23 changes: 11 additions & 12 deletions Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@

#include "BufferIdentifierSet.h"
#include "GPUConnectionToWebProcess.h"
#include "ImageBufferShareableBitmapBackend.h"
#include "Logging.h"
#include "MessageSenderInlines.h"
#include "PlatformImageBufferShareableBackend.h"
#include "RemoteBarcodeDetector.h"
#include "RemoteBarcodeDetectorMessages.h"
#include "RemoteDisplayListRecorder.h"
Expand Down Expand Up @@ -60,6 +60,9 @@
#include <wtf/SystemTracing.h>

#if HAVE(IOSURFACE)
#include "ImageBufferRemoteIOSurfaceBackend.h"
#include "ImageBufferShareableMappedIOSurfaceBackend.h"
#include "ImageBufferShareableMappedIOSurfaceBitmapBackend.h"
#include <WebCore/IOSurfacePool.h>
#endif

Expand All @@ -69,10 +72,6 @@
#import <WebCore/TextDetectorImplementation.h>
#endif

#if PLATFORM(COCOA)
#include "ImageBufferShareableMappedIOSurfaceBitmapBackend.h"
#endif

#define MESSAGE_CHECK(assertion, message) do { \
if (UNLIKELY(!(assertion))) { \
terminateWebProcess(message); \
Expand Down Expand Up @@ -225,20 +224,20 @@ void RemoteRenderingBackend::createImageBuffer(const FloatSize& logicalSize, Ren
assertIsCurrent(workQueue());
RefPtr<ImageBuffer> imageBuffer;
ImageBufferCreationContext creationContext;
#if HAVE(IOSURFACE)
creationContext.surfacePool = &ioSurfacePool();
#endif
creationContext.resourceOwner = m_resourceOwner;

#if HAVE(IOSURFACE)
creationContext.surfacePool = &ioSurfacePool();
if (renderingMode == RenderingMode::Accelerated) {
#if PLATFORM(COCOA)
if (isSmallLayerBacking({ logicalSize, resolutionScale, colorSpace, pixelFormat, purpose }))
imageBuffer = ImageBuffer::create<ImageBufferShareableMappedIOSurfaceBitmapBackend>(logicalSize, resolutionScale, colorSpace, pixelFormat, purpose, creationContext, imageBufferIdentifier);
#endif
if (!imageBuffer)
imageBuffer = ImageBuffer::create<AcceleratedImageBufferShareableMappedBackend>(logicalSize, resolutionScale, colorSpace, pixelFormat, purpose, creationContext, imageBufferIdentifier);
imageBuffer = ImageBuffer::create<ImageBufferShareableMappedIOSurfaceBackend>(logicalSize, resolutionScale, colorSpace, pixelFormat, purpose, creationContext, imageBufferIdentifier);
} else
imageBuffer = ImageBuffer::create<UnacceleratedImageBufferShareableBackend>(logicalSize, resolutionScale, colorSpace, pixelFormat, purpose, creationContext, imageBufferIdentifier);
imageBuffer = ImageBuffer::create<ImageBufferShareableBitmapBackend>(logicalSize, resolutionScale, colorSpace, pixelFormat, purpose, creationContext, imageBufferIdentifier);
#else
imageBuffer = ImageBuffer::create<ImageBufferShareableBitmapBackend>(logicalSize, resolutionScale, colorSpace, pixelFormat, purpose, creationContext, imageBufferIdentifier);
#endif

if (imageBuffer)
didCreateImageBuffer(imageBuffer.releaseNonNull());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@

#import "ArgumentCoders.h"
#import "DynamicContentScalingImageBufferBackend.h"
#import "ImageBufferBackendHandleSharing.h"
#import "Logging.h"
#import "PlatformCALayerRemote.h"
#import "PlatformImageBufferShareableBackend.h"
#import "RemoteLayerBackingStoreCollection.h"
#import "RemoteLayerTreeContext.h"
#import "RemoteLayerTreeLayers.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@
#import "config.h"
#import "RemoteLayerBackingStoreCollection.h"

#import "ImageBufferShareableBitmapBackend.h"
#import "ImageBufferShareableMappedIOSurfaceBackend.h"
#import "Logging.h"
#import "PlatformCALayerRemote.h"
#import "PlatformImageBufferShareableBackend.h"
#import "RemoteLayerBackingStore.h"
#import "RemoteLayerTreeContext.h"
#import "SwapBuffersDisplayRequirement.h"
Expand Down Expand Up @@ -258,10 +259,10 @@
case RemoteLayerBackingStore::Type::IOSurface: {
ImageBufferCreationContext creationContext;
creationContext.surfacePool = &WebCore::IOSurfacePool::sharedPool();
return WebCore::ImageBuffer::create<AcceleratedImageBufferShareableMappedBackend>(backingStore.size(), backingStore.scale(), backingStore.colorSpace(), backingStore.pixelFormat(), WebCore::RenderingPurpose::LayerBacking, creationContext);
return WebCore::ImageBuffer::create<ImageBufferShareableMappedIOSurfaceBackend>(backingStore.size(), backingStore.scale(), backingStore.colorSpace(), backingStore.pixelFormat(), WebCore::RenderingPurpose::LayerBacking, creationContext);
}
case RemoteLayerBackingStore::Type::Bitmap:
return WebCore::ImageBuffer::create<UnacceleratedImageBufferShareableBackend>(backingStore.size(), backingStore.scale(), backingStore.colorSpace(), backingStore.pixelFormat(), WebCore::RenderingPurpose::LayerBacking, { });
return WebCore::ImageBuffer::create<ImageBufferShareableBitmapBackend>(backingStore.size(), backingStore.scale(), backingStore.colorSpace(), backingStore.pixelFormat(), WebCore::RenderingPurpose::LayerBacking, { });
}
return nullptr;
}
Expand Down
Loading

0 comments on commit 18cbc28

Please sign in to comment.