⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 267398 in webkit


Ignore:
Timestamp:
Sep 21, 2020, 11:08:19 PM (6 years ago)
Author:
Adrian Perez de Castro
Message:

[GTK] Bump cairo version to support HiDPI
https://bugs.webkit.org/show_bug.cgi?id=133378

Reviewed by Carlos Garcia Campos.

Remove conditional compilation around cairo_{g,s}et_device_scale() as there is no need to
support older versions of Cairo which lack the functions. The minimum version of Cairo
being required by CMake is 1.14.0, which already includes them.

Source/WebCore:

No new tests needed.

  • platform/graphics/cairo/BackingStoreBackendCairoImpl.cpp:

(WebCore::createCairoImageSurfaceWithFastMalloc): Use cairo_surface_set_device_scale()
directly.
(WebCore::BackingStoreBackendCairoImpl::scroll): Use cairo_surface_get_device_scale()
directly.

  • platform/graphics/cairo/BackingStoreBackendCairoX11.cpp:

(WebCore::BackingStoreBackendCairoX11::BackingStoreBackendCairoX11): Use
cairo_surface_set_device_scale() directly.
(WebCore::BackingStoreBackendCairoX11::scroll): Use cairo_surface_get_device_scale()
directly.

  • platform/graphics/cairo/CairoUtilities.cpp: Remove helper functions

cairoSurfaceSetDeviceScale() and cairoSurfaceGetDeviceScale().

  • platform/graphics/cairo/CairoUtilities.h: Ditto.

Source/WebKit:

  • Shared/cairo/ShareableBitmapCairo.cpp:

(WebKit::ShareableBitmap::paint): use cairo_surface_set_device_scale() directly.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTakeViewSnapshot): Ditto.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::displayBuffer): Ditto.
(WebKit::AcceleratedBackingStoreWayland::downloadTexture): Ditto.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::update): Ditto.

Location:
trunk/Source
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r267394 r267398  
     12020-09-21  Adrian Perez de Castro  <aperez@igalia.com>
     2
     3        [GTK] Bump cairo version to support HiDPI
     4        https://bugs.webkit.org/show_bug.cgi?id=133378
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Remove conditional compilation around cairo_{g,s}et_device_scale() as there is no need to
     9        support older versions of Cairo which lack the functions. The minimum version of Cairo
     10        being required by CMake is 1.14.0, which already includes them.
     11
     12        No new tests needed.
     13
     14        * platform/graphics/cairo/BackingStoreBackendCairoImpl.cpp:
     15        (WebCore::createCairoImageSurfaceWithFastMalloc): Use cairo_surface_set_device_scale()
     16        directly.
     17        (WebCore::BackingStoreBackendCairoImpl::scroll): Use cairo_surface_get_device_scale()
     18        directly.
     19        * platform/graphics/cairo/BackingStoreBackendCairoX11.cpp:
     20        (WebCore::BackingStoreBackendCairoX11::BackingStoreBackendCairoX11): Use
     21        cairo_surface_set_device_scale() directly.
     22        (WebCore::BackingStoreBackendCairoX11::scroll): Use cairo_surface_get_device_scale()
     23        directly.
     24        * platform/graphics/cairo/CairoUtilities.cpp: Remove helper functions
     25        cairoSurfaceSetDeviceScale() and cairoSurfaceGetDeviceScale().
     26        * platform/graphics/cairo/CairoUtilities.h: Ditto.
     27
    1282020-09-21  Tim Horton  <timothy_horton@apple.com>
    229
  • trunk/Source/WebCore/platform/graphics/cairo/BackingStoreBackendCairoImpl.cpp

    r250027 r267398  
    3636    RefPtr<cairo_surface_t> surface = adoptRef(cairo_image_surface_create_for_data(static_cast<unsigned char*>(surfaceData), CAIRO_FORMAT_ARGB32, size.width(), size.height(), stride));
    3737    cairo_surface_set_user_data(surface.get(), &s_surfaceDataKey, surfaceData, [](void* data) { fastFree(data); });
    38     cairoSurfaceSetDeviceScale(surface.get(), deviceScaleFactor, deviceScaleFactor);
     38    cairo_surface_set_device_scale(surface.get(), deviceScaleFactor, deviceScaleFactor);
    3939    return surface;
    4040}
     
    6262        IntSize size(cairo_image_surface_get_width(m_surface.get()), cairo_image_surface_get_height(m_surface.get()));
    6363        double xScale, yScale;
    64         cairoSurfaceGetDeviceScale(m_surface.get(), xScale, yScale);
     64        cairo_surface_get_device_scale(m_surface.get(), &xScale, &yScale);
    6565        ASSERT(xScale == yScale);
    6666        m_scrollSurface = createCairoImageSurfaceWithFastMalloc(size, xScale);
  • trunk/Source/WebCore/platform/graphics/cairo/BackingStoreBackendCairoX11.cpp

    r186279 r267398  
    3838
    3939    m_surface = adoptRef(cairo_xlib_surface_create(display, m_pixmap.get(), visual, scaledSize.width(), scaledSize.height()));
    40     cairoSurfaceSetDeviceScale(m_surface.get(), deviceScaleFactor, deviceScaleFactor);
     40    cairo_surface_set_device_scale(m_surface.get(), deviceScaleFactor, deviceScaleFactor);
    4141}
    4242
     
    5656
    5757    double xScale, yScale;
    58     cairoSurfaceGetDeviceScale(m_surface.get(), xScale, yScale);
     58    cairo_surface_get_device_scale(m_surface.get(), &xScale, &yScale);
    5959    ASSERT(xScale == yScale);
    6060
  • trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp

    r263941 r267398  
    362362}
    363363
    364 void cairoSurfaceSetDeviceScale(cairo_surface_t* surface, double xScale, double yScale)
    365 {
    366     // This function was added pretty much simultaneous to when 1.13 was branched.
    367 #if HAVE(CAIRO_SURFACE_SET_DEVICE_SCALE)
    368     cairo_surface_set_device_scale(surface, xScale, yScale);
    369 #else
    370     UNUSED_PARAM(surface);
    371     ASSERT_UNUSED(xScale, 1 == xScale);
    372     ASSERT_UNUSED(yScale, 1 == yScale);
    373 #endif
    374 }
    375 
    376 void cairoSurfaceGetDeviceScale(cairo_surface_t* surface, double& xScale, double& yScale)
    377 {
    378 #if HAVE(CAIRO_SURFACE_SET_DEVICE_SCALE)
    379     cairo_surface_get_device_scale(surface, &xScale, &yScale);
    380 #else
    381     UNUSED_PARAM(surface);
    382     xScale = 1;
    383     yScale = 1;
    384 #endif
    385 }
    386 
    387364RefPtr<cairo_region_t> toCairoRegion(const Region& region)
    388365{
  • trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.h

    r255477 r267398  
    3232#include "IntSize.h"
    3333#include <cairo.h>
    34 
    35 // This function was added pretty much simultaneous to when 1.13 was branched.
    36 #define HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE CAIRO_VERSION_MAJOR > 1 || (CAIRO_VERSION_MAJOR == 1 && CAIRO_VERSION_MINOR >= 13)
    3734
    3835#if USE(FREETYPE)
     
    9390IntSize cairoSurfaceSize(cairo_surface_t*);
    9491void flipImageSurfaceVertically(cairo_surface_t*);
    95 void cairoSurfaceSetDeviceScale(cairo_surface_t*, double xScale, double yScale);
    96 void cairoSurfaceGetDeviceScale(cairo_surface_t*, double& xScale, double& yScale);
    9792
    9893RefPtr<cairo_region_t> toCairoRegion(const Region&);
  • trunk/Source/WebKit/ChangeLog

    r267394 r267398  
     12020-09-21  Adrian Perez de Castro  <aperez@igalia.com>
     2
     3        [GTK] Bump cairo version to support HiDPI
     4        https://bugs.webkit.org/show_bug.cgi?id=133378
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Remove conditional compilation around cairo_{g,s}et_device_scale() as there is no need to
     9        support older versions of Cairo which lack the functions. The minimum version of Cairo
     10        being required by CMake is 1.14.0, which already includes them.
     11
     12        * Shared/cairo/ShareableBitmapCairo.cpp:
     13        (WebKit::ShareableBitmap::paint): use cairo_surface_set_device_scale() directly.
     14        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
     15        (webkitWebViewBaseTakeViewSnapshot): Ditto.
     16        * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
     17        (WebKit::AcceleratedBackingStoreWayland::displayBuffer): Ditto.
     18        (WebKit::AcceleratedBackingStoreWayland::downloadTexture): Ditto.
     19        * UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
     20        (WebKit::AcceleratedBackingStoreX11::update): Ditto.
     21
    1222020-09-21  Tim Horton  <timothy_horton@apple.com>
    223
  • trunk/Source/WebKit/Shared/cairo/ShareableBitmapCairo.cpp

    r249375 r267398  
    7272{
    7373    RefPtr<cairo_surface_t> surface = createSurfaceFromData(data(), m_size);
    74     cairoSurfaceSetDeviceScale(surface.get(), scaleFactor, scaleFactor);
     74    cairo_surface_set_device_scale(surface.get(), scaleFactor, scaleFactor);
    7575    FloatRect destRect(dstPoint, srcRect.size());
    7676
  • trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp

    r266718 r267398  
    23422342
    23432343    RefPtr<cairo_surface_t> surface = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_RGB24, size.width(), size.height()));
    2344     cairoSurfaceSetDeviceScale(surface.get(), deviceScale, deviceScale);
     2344    cairo_surface_set_device_scale(surface.get(), deviceScale, deviceScale);
    23452345
    23462346    RefPtr<cairo_t> cr = adoptRef(cairo_create(surface.get()));
  • trunk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp

    r266726 r267398  
    402402            fastFree(data);
    403403        });
    404         cairoSurfaceSetDeviceScale(m_surface.get(), m_webPage.deviceScaleFactor(), m_webPage.deviceScaleFactor());
     404        cairo_surface_set_device_scale(m_surface.get(), m_webPage.deviceScaleFactor(), m_webPage.deviceScaleFactor());
    405405    }
    406406
     
    473473        m_surface = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, textureSize.width(), textureSize.height()));
    474474
    475     cairoSurfaceSetDeviceScale(m_surface.get(), m_webPage.deviceScaleFactor(), m_webPage.deviceScaleFactor());
     475    cairo_surface_set_device_scale(m_surface.get(), m_webPage.deviceScaleFactor(), m_webPage.deviceScaleFactor());
    476476
    477477    GLuint fb;
  • trunk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreX11.cpp

    r267024 r267398  
    210210#endif
    211211    m_surface = adoptRef(cairo_xlib_surface_create(display, pixmap, visual, size.width(), size.height()));
    212     WebCore::cairoSurfaceSetDeviceScale(m_surface.get(), deviceScaleFactor, deviceScaleFactor);
     212    cairo_surface_set_device_scale(m_surface.get(), deviceScaleFactor, deviceScaleFactor);
    213213    m_damage = XDamageCreate(display, pixmap, XDamageReportNonEmpty);
    214214    XDamageNotifier::singleton().add(m_damage.get(), [this] {
Note: See TracChangeset for help on using the changeset viewer.