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

Changeset 246304 in webkit


Ignore:
Timestamp:
Jun 11, 2019, 12:43:06 AM (7 years ago)
Author:
Carlos Garcia Campos
Message:

[WPE] Use new exported image API from fdo backend
https://bugs.webkit.org/show_bug.cgi?id=198558

Reviewed by Philippe Normand.

  • WebKitTestRunner/PlatformWPE.cmake: Do not find fdo backend and libxkb again here, since WKTR depends on

WPEToolingBackends that already depends on fdo backend and libxkb

  • wpe/backends/CMakeLists.txt: Bump fdo requirements to 1.3.0 version.
  • wpe/backends/HeadlessViewBackend.cpp:

(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::createSnapshot):
(WPEToolingBackends::HeadlessViewBackend::performUpdate):
(WPEToolingBackends::HeadlessViewBackend::displayBuffer):

  • wpe/backends/HeadlessViewBackend.h:
  • wpe/backends/ViewBackend.cpp:

(WPEToolingBackends::ViewBackend::initialize):

  • wpe/backends/ViewBackend.h:
  • wpe/backends/WindowViewBackend.cpp:

(WPEToolingBackends::WindowViewBackend::displayBuffer):

  • wpe/backends/WindowViewBackend.h:
Location:
trunk/Tools
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r246303 r246304  
     12019-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [WPE] Use new exported image API from fdo backend
     4        https://bugs.webkit.org/show_bug.cgi?id=198558
     5
     6        Reviewed by Philippe Normand.
     7
     8        * WebKitTestRunner/PlatformWPE.cmake: Do not find fdo backend and libxkb again here, since WKTR depends on
     9        WPEToolingBackends that already depends on fdo backend and libxkb
     10        * wpe/backends/CMakeLists.txt: Bump fdo requirements to 1.3.0 version.
     11        * wpe/backends/HeadlessViewBackend.cpp:
     12        (WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
     13        (WPEToolingBackends::HeadlessViewBackend::createSnapshot):
     14        (WPEToolingBackends::HeadlessViewBackend::performUpdate):
     15        (WPEToolingBackends::HeadlessViewBackend::displayBuffer):
     16        * wpe/backends/HeadlessViewBackend.h:
     17        * wpe/backends/ViewBackend.cpp:
     18        (WPEToolingBackends::ViewBackend::initialize):
     19        * wpe/backends/ViewBackend.h:
     20        * wpe/backends/WindowViewBackend.cpp:
     21        (WPEToolingBackends::WindowViewBackend::displayBuffer):
     22        * wpe/backends/WindowViewBackend.h:
     23
    1242019-06-10  Dewei Zhu  <dewei_zhu@apple.com>
    225
  • trunk/Tools/WebKitTestRunner/PlatformWPE.cmake

    r245565 r246304  
    1 find_package(Libxkbcommon 0.4.0 REQUIRED)
    2 find_package(WPEBackend-fdo REQUIRED)
    3 
    41add_custom_target(WebKitTestRunner-forwarding-headers
    52    COMMAND ${PERL_EXECUTABLE} ${WEBKIT_DIR}/Scripts/generate-forwarding-headers.pl --include-path ${WEBKIT_TESTRUNNER_DIR} --output ${FORWARDING_HEADERS_DIR} --platform wpe
  • trunk/Tools/wpe/backends/CMakeLists.txt

    r245565 r246304  
    22find_package(Wayland REQUIRED)
    33find_package(WaylandProtocols 1.12 REQUIRED)
    4 find_package(WPEBackend-fdo REQUIRED)
     4find_package(WPEBackend-fdo 1.3.0 REQUIRED)
    55
    66set(DERIVED_SOURCES_WPETOOLINGBACKENDS_DIR "${CMAKE_BINARY_DIR}/DerivedSources/WPEToolingBackends")
  • trunk/Tools/wpe/backends/HeadlessViewBackend.cpp

    r245565 r246304  
    6666HeadlessViewBackend::HeadlessViewBackend(uint32_t width, uint32_t height)
    6767    : ViewBackend(width, height)
    68     , m_pendingImage(EGL_NO_IMAGE_KHR)
    69     , m_lockedImage(EGL_NO_IMAGE_KHR)
    7068{
    7169    m_eglDisplay = getEGLDisplay();
     
    122120    glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA_EXT, m_width, m_height, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, nullptr);
    123121
    124     imageTargetTexture2DOES(GL_TEXTURE_2D, m_lockedImage);
     122    imageTargetTexture2DOES(GL_TEXTURE_2D, wpe_fdo_egl_exported_image_get_egl_image(m_lockedImage));
    125123    glBindTexture(GL_TEXTURE_2D, 0);
    126124
     
    166164    wpe_view_backend_exportable_fdo_dispatch_frame_complete(m_exportable);
    167165    if (m_lockedImage)
    168         wpe_view_backend_exportable_fdo_egl_dispatch_release_image(m_exportable, m_lockedImage);
     166        wpe_view_backend_exportable_fdo_egl_dispatch_release_exported_image(m_exportable, m_lockedImage);
    169167
    170168    m_lockedImage = m_pendingImage;
    171     m_pendingImage = EGL_NO_IMAGE_KHR;
     169    m_pendingImage = nullptr;
    172170}
    173171
    174 void HeadlessViewBackend::displayBuffer(EGLImageKHR image)
     172void HeadlessViewBackend::displayBuffer(struct wpe_fdo_egl_exported_image* image)
    175173{
    176174    if (m_pendingImage)
  • trunk/Tools/wpe/backends/HeadlessViewBackend.h

    r234193 r246304  
    3131#include <unordered_map>
    3232
    33 typedef void* EGLImageKHR;
    34 
    3533namespace WPEToolingBackends {
    3634
     
    4341
    4442private:
    45     void displayBuffer(EGLImageKHR) override;
     43    void displayBuffer(struct wpe_fdo_egl_exported_image*) override;
    4644
    4745    void performUpdate();
    4846
    49     EGLImageKHR m_pendingImage;
    50     EGLImageKHR m_lockedImage;
     47    struct wpe_fdo_egl_exported_image* m_pendingImage { nullptr };
     48    struct wpe_fdo_egl_exported_image* m_lockedImage { nullptr };
    5149
    5250    GSource* m_updateSource { nullptr };
  • trunk/Tools/wpe/backends/ViewBackend.cpp

    r245565 r246304  
    190190
    191191    static struct wpe_view_backend_exportable_fdo_egl_client exportableClient = {
    192         // export_buffer_resource
    193         [](void* data, EGLImageKHR image)
     192        // export_egl_image
     193        nullptr,
     194        // export_fdo_egl_image
     195        [](void* data, struct wpe_fdo_egl_exported_image* image)
    194196        {
    195197            static_cast<ViewBackend*>(data)->displayBuffer(image);
    196198        },
    197199        // padding
    198         nullptr, nullptr, nullptr, nullptr
     200        nullptr, nullptr, nullptr
    199201    };
    200202    m_exportable = wpe_view_backend_exportable_fdo_egl_create(&exportableClient, this, m_width, m_height);
  • trunk/Tools/wpe/backends/ViewBackend.h

    r245565 r246304  
    3232typedef void* EGLContext;
    3333typedef void* EGLDisplay;
    34 typedef void* EGLImageKHR;
    3534typedef struct _AtkObject AtkObject;
     35struct wpe_fdo_egl_exported_image;
    3636
    3737// Manually provide the EGL_CAST C++ definition in case eglplatform.h doesn't provide it.
     
    7777    void dispatchInputTouchEvent(struct wpe_input_touch_event*);
    7878
    79     virtual void displayBuffer(EGLImageKHR) = 0;
     79    virtual void displayBuffer(struct wpe_fdo_egl_exported_image*) = 0;
    8080
    8181    uint32_t m_width { 0 };
  • trunk/Tools/wpe/backends/WindowViewBackend.cpp

    r245565 r246304  
    632632
    633633        if (window.m_committedImage)
    634             wpe_view_backend_exportable_fdo_egl_dispatch_release_image(window.m_exportable, window.m_committedImage);
    635         window.m_committedImage = EGL_NO_IMAGE_KHR;
     634            wpe_view_backend_exportable_fdo_egl_dispatch_release_exported_image(window.m_exportable, window.m_committedImage);
     635        window.m_committedImage = nullptr;
    636636    }
    637637};
    638638
    639 void WindowViewBackend::displayBuffer(EGLImageKHR image)
     639void WindowViewBackend::displayBuffer(struct wpe_fdo_egl_exported_image* image)
    640640{
    641641    if (!m_eglContext)
     
    651651    glActiveTexture(GL_TEXTURE0);
    652652    glBindTexture(GL_TEXTURE_2D, m_viewTexture);
    653     imageTargetTexture2DOES(GL_TEXTURE_2D, image);
     653    imageTargetTexture2DOES(GL_TEXTURE_2D, wpe_fdo_egl_exported_image_get_egl_image(image));
    654654    glUniform1i(m_textureUniform, 0);
    655655
  • trunk/Tools/wpe/backends/WindowViewBackend.h

    r234542 r246304  
    3131#include <unordered_map>
    3232
    33 typedef void* EGLImageKHR;
    3433typedef void* EGLSurface;
    3534typedef struct wl_egl_window  *EGLNativeWindowType;
     
    4342
    4443private:
    45     void displayBuffer(EGLImageKHR) override;
     44    void displayBuffer(struct wpe_fdo_egl_exported_image*) override;
    4645
    4746    static const struct wl_registry_listener s_registryListener;
     
    107106    unsigned m_textureUniform { 0 };
    108107    unsigned m_viewTexture { 0 };
    109     EGLImageKHR m_committedImage;
     108    struct wpe_fdo_egl_exported_image* m_committedImage { nullptr };
    110109};
    111110
Note: See TracChangeset for help on using the changeset viewer.