Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f9a4dc41 authored by Jerome Gaillard's avatar Jerome Gaillard
Browse files

Make HWUI build for macOs

Only use AnimatedImageThread on Android, it is not currently supported
on host.

Bug: 148525019
Test: on macOs: lunch sdk & m libhwui
Change-Id: I644bc82887fb7e36b2a5e4117ee328a3df99a0d4
parent 64fdcebb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -168,7 +168,6 @@ cc_defaults {
        "renderthread/RenderTask.cpp",
        "renderthread/TimeLord.cpp",
        "hwui/AnimatedImageDrawable.cpp",
        "hwui/AnimatedImageThread.cpp",
        "hwui/Bitmap.cpp",
        "hwui/Canvas.cpp",
        "hwui/ImageDecoder.cpp",
@@ -210,6 +209,7 @@ cc_defaults {
        android: {

            srcs: [
                "hwui/AnimatedImageThread.cpp",
                "pipeline/skia/ATraceMemoryDump.cpp",
                "pipeline/skia/GLFunctorDrawable.cpp",
                "pipeline/skia/LayerDrawable.cpp",
+6 −0
Original line number Diff line number Diff line
@@ -15,7 +15,9 @@
 */

#include "AnimatedImageDrawable.h"
#ifdef __ANDROID__ // Layoutlib does not support AnimatedImageThread
#include "AnimatedImageThread.h"
#endif

#include "utils/TraceUtils.h"

@@ -160,8 +162,10 @@ void AnimatedImageDrawable::onDraw(SkCanvas* canvas) {
    } else if (starting) {
        // The image has animated, and now is being reset. Queue up the first
        // frame, but keep showing the current frame until the first is ready.
#ifdef __ANDROID__ // Layoutlib does not support AnimatedImageThread
        auto& thread = uirenderer::AnimatedImageThread::getInstance();
        mNextSnapshot = thread.reset(sk_ref_sp(this));
#endif
    }

    bool finalFrame = false;
@@ -187,8 +191,10 @@ void AnimatedImageDrawable::onDraw(SkCanvas* canvas) {
    }

    if (mRunning && !mNextSnapshot.valid()) {
#ifdef __ANDROID__ // Layoutlib does not support AnimatedImageThread
        auto& thread = uirenderer::AnimatedImageThread::getInstance();
        mNextSnapshot = thread.decodeNextFrame(sk_ref_sp(this));
#endif
    }

    if (!drawDirectly) {