Changeset 231638 in webkit


Ignore:
Timestamp:
May 10, 2018 7:50:41 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

[GTK] Implement ImageBuffer::toBGRAData
https://bugs.webkit.org/show_bug.cgi?id=185511

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-10
Reviewed by Michael Catanzaro.

This was never implemented but will be required for the MediaStream API
tests.

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::toBGRAData const):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::toBGRAData const):

  • platform/graphics/gtk/ImageBufferGtk.cpp:

(WebCore::ImageBuffer::toBGRAData const):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r231636 r231638  
     12018-05-10  Thibault Saunier  <tsaunier@igalia.com>
     2
     3        [GTK] Implement ImageBuffer::toBGRAData
     4        https://bugs.webkit.org/show_bug.cgi?id=185511
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        This was never implemented but will be required for the MediaStream API
     9        tests.
     10
     11        * platform/graphics/ImageBuffer.cpp:
     12        (WebCore::ImageBuffer::toBGRAData const):
     13        * platform/graphics/cg/ImageBufferCG.cpp:
     14        (WebCore::ImageBuffer::toBGRAData const):
     15        * platform/graphics/gtk/ImageBufferGtk.cpp:
     16        (WebCore::ImageBuffer::toBGRAData const):
     17
    1182018-05-10  Yacine Bandou  <yacine.bandou_ext@softathome.com>
    219
  • trunk/Source/WebCore/platform/graphics/ImageBuffer.cpp

    r226315 r231638  
    103103}
    104104
     105#if !USE(CG) && !PLATFORM(GTK)
    105106Vector<uint8_t> ImageBuffer::toBGRAData() const
    106107{
    107 #if USE(CG)
    108     if (context().isAcceleratedContext())
    109         flushContext();
    110     return m_data.toBGRAData(context().isAcceleratedContext(), m_size.width(), m_size.height());
    111 #else
    112108    // FIXME: Implement this for other backends.
    113109    return { };
    114 #endif
    115 }
     110}
     111#endif
    116112
    117113#if !(USE(CG) || USE(DIRECT2D))
  • trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp

    r228853 r231638  
    631631}
    632632
     633Vector<uint8_t> ImageBuffer::toBGRAData() const
     634{
     635    if (context().isAcceleratedContext())
     636        flushContext();
     637    return m_data.toBGRAData(context().isAcceleratedContext(), m_size.width(), m_size.height());
     638}
     639
    633640} // namespace WebCore
    634641
  • trunk/Source/WebCore/platform/graphics/gtk/ImageBufferGtk.cpp

    r226425 r231638  
    2121
    2222#include "CairoUtilities.h"
     23#include "GRefPtrGtk.h"
    2324#include "GdkCairoUtilities.h"
    24 #include "GRefPtrGtk.h"
    2525#include "MIMETypeRegistry.h"
    2626#include <cairo.h>
     
    8888}
    8989
     90Vector<uint8_t> ImageBuffer::toBGRAData() const
     91{
     92    auto pixbuf = adoptGRef(cairoSurfaceToGdkPixbuf(m_data.m_surface.get()));
     93    auto pixels = gdk_pixbuf_get_pixels(pixbuf.get());
     94
     95    Vector<uint8_t> imageData;
     96    imageData.append(pixels, gdk_pixbuf_get_byte_length(pixbuf.get()));
     97    return imageData;
     98}
     99
    90100Vector<uint8_t> ImageBuffer::toData(const String& mimeType, std::optional<double> quality) const
    91101{
Note: See TracChangeset for help on using the changeset viewer.