Bug 238851 - Unify the two ImageBuffer::create() functions, passing RenderingPurpose everywhere
Summary: Unify the two ImageBuffer::create() functions, passing RenderingPurpose every...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2022-04-05 16:40 PDT by Simon Fraser (smfr)
Modified: 2022-04-08 14:16 PDT (History)
28 users (show)

See Also:


Attachments
Patch (54.06 KB, patch)
2022-04-05 16:47 PDT, Simon Fraser (smfr)
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
Patch (56.18 KB, patch)
2022-04-05 16:52 PDT, Simon Fraser (smfr)
sabouhallawa: review+
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
Patch (55.63 KB, patch)
2022-04-05 20:50 PDT, Simon Fraser (smfr)
no flags Details | Formatted Diff | Diff
Patch (54.09 KB, patch)
2022-04-05 21:01 PDT, Simon Fraser (smfr)
ews-feeder: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2022-04-05 16:40:56 PDT
Unify the two ImageBuffer::create() functions, passing RenderingPurpose everywhere
Comment 1 Simon Fraser (smfr) 2022-04-05 16:47:07 PDT
Created attachment 456766 [details]
Patch
Comment 2 Simon Fraser (smfr) 2022-04-05 16:52:34 PDT
Created attachment 456768 [details]
Patch
Comment 3 Said Abou-Hallawa 2022-04-05 17:24:56 PDT
Comment on attachment 456768 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=456768&action=review

> Source/WebCore/platform/graphics/ImageBuffer.h:67
> +    WEBCORE_EXPORT static RefPtr<ImageBuffer> create(const FloatSize&, OptionSet<ImageBufferOptions>, RenderingPurpose, float resolutionScale, const DestinationColorSpace&, PixelFormat, const CreationContext& = { });

I think ImageBufferOptions can be moved to the end just before CreationContext and it can have a default value { }. So many callers do not have to pass { } for it.

> Source/WebCore/platform/graphics/RenderingMode.h:47
> +enum class ImageBufferOptions : uint8_t {

Should this be moved to ImageBuffer.h since it is only used for ImageBuffer?

> Source/WebCore/platform/graphics/filters/software/FETileSoftwareApplier.cpp:54
> +    OptionSet<ImageBufferOptions> bufferOptions;
> +    if (filter.renderingMode() == RenderingMode::Accelerated)
> +        bufferOptions.add(ImageBufferOptions::Accelerated);

This code is repeated many times in the patch. Can't we add an inline function in RenderingMode.h

inline OptionSet<ImageBufferOptions> bufferOptions(RenderingMode renderringMode)
{

}

Or something else. And use this inline directly in the call to ImageBuffer::create(tileRect.size(), bufferOptions(filter.renderingMode()), ...).
Comment 4 Simon Fraser (smfr) 2022-04-05 20:50:20 PDT
Created attachment 456778 [details]
Patch
Comment 5 Simon Fraser (smfr) 2022-04-05 21:01:12 PDT
Created attachment 456779 [details]
Patch
Comment 6 EWS 2022-04-06 08:23:50 PDT
Committed r292469 (249320@main): <https://commits.webkit.org/249320@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456779 [details].
Comment 7 Radar WebKit Bug Importer 2022-04-06 08:24:17 PDT
<rdar://problem/91354760>
Comment 8 Darin Adler 2022-04-08 14:16:42 PDT
There’s a "RendingMode" typo in here.

I suggest grepping for "endingMode".