Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 832bcc5229f97a3f10f2387c9b9da94723ce9834
      
https://github.com/WebKit/WebKit/commit/832bcc5229f97a3f10f2387c9b9da94723ce9834
  Author: Carlos Garcia Campos <cgar...@igalia.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
    M Source/WebCore/platform/graphics/skia/GraphicsContextSkia.h
    M 
Source/WebCore/platform/graphics/skia/ImageBufferSkiaAcceleratedBackend.cpp
    M Source/WebCore/platform/graphics/skia/ImageBufferSkiaSurfaceBackend.cpp
    M Source/WebCore/platform/graphics/skia/ImageBufferSkiaSurfaceBackend.h
    M 
Source/WebCore/platform/graphics/skia/ImageBufferSkiaUnacceleratedBackend.cpp
    M Source/WebCore/platform/graphics/skia/PathSkia.cpp
    M Source/WebCore/platform/graphics/skia/ShareableBitmapSkia.cpp
    M 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp

  Log Message:
  -----------
  [Skia] Make sure the Skia GL context is current when calling SkCanvas draw 
operations for 2D canvas
https://bugs.webkit.org/show_bug.cgi?id=269984

Reviewed by Nikolas Zimmermann.

When rendering layer contents, we make the Skia GL context current
before rendering the layer contents and it remains current, but in the
case of 2D canvas, we can't make sure the context is current when the
draw operations are called. This is causing rendering issues in some
cases that only happen with the GL renderer. This patch adds RenderingMode
and RenderingPurpose parameters to GraphicsContextSkia, and a helper
function makeGLContextCurrentIfNeeded() that makes the Skia GL context
current when the RenderingMode is Accelerated and RenderingPurpose is Canvas.

* Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContextSkia::GraphicsContextSkia):
(WebCore::GraphicsContextSkia::makeGLContextCurrentIfNeeded):
(WebCore::GraphicsContextSkia::drawRect):
(WebCore::GraphicsContextSkia::drawNativeImageInternal):
(WebCore::GraphicsContextSkia::drawLine):
(WebCore::GraphicsContextSkia::drawEllipse):
(WebCore::GraphicsContextSkia::fillPath):
(WebCore::GraphicsContextSkia::strokePath):
(WebCore::GraphicsContextSkia::fillRect):
(WebCore::GraphicsContextSkia::beginTransparencyLayer):
(WebCore::GraphicsContextSkia::endTransparencyLayer):
(WebCore::GraphicsContextSkia::clearRect):
(WebCore::GraphicsContextSkia::strokeRect):
(WebCore::GraphicsContextSkia::fillRoundedRectImpl):
(WebCore::GraphicsContextSkia::fillRectWithRoundedHole):
(WebCore::GraphicsContextSkia::drawPattern):
(WebCore::GraphicsContextSkia::renderingMode const): Deleted.
* Source/WebCore/platform/graphics/skia/GraphicsContextSkia.h:
* Source/WebCore/platform/graphics/skia/ImageBufferSkiaAcceleratedBackend.cpp:
(WebCore::ImageBufferSkiaAcceleratedBackend::ImageBufferSkiaAcceleratedBackend):
* Source/WebCore/platform/graphics/skia/ImageBufferSkiaSurfaceBackend.cpp:
(WebCore::ImageBufferSkiaSurfaceBackend::ImageBufferSkiaSurfaceBackend):
* Source/WebCore/platform/graphics/skia/ImageBufferSkiaSurfaceBackend.h:
* Source/WebCore/platform/graphics/skia/ImageBufferSkiaUnacceleratedBackend.cpp:
(WebCore::ImageBufferSkiaUnacceleratedBackend::ImageBufferSkiaUnacceleratedBackend):
* Source/WebCore/platform/graphics/skia/PathSkia.cpp:
(WebCore::PathSkia::strokeContains const):
(WebCore::PathSkia::strokeBoundingRect const):
* Source/WebCore/platform/graphics/skia/ShareableBitmapSkia.cpp:
(WebCore::ShareableBitmap::createGraphicsContext):
* 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp:
(WebCore::CoordinatedGraphicsLayer::paintTile):
(WebCore::CoordinatedGraphicsLayer::paintImage):

Canonical link: https://commits.webkit.org/275432@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to