diff options
Diffstat (limited to 'libs/hwui/canvas/CanvasOpRasterizer.cpp')
-rw-r--r-- | libs/hwui/canvas/CanvasOpRasterizer.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/libs/hwui/canvas/CanvasOpRasterizer.cpp b/libs/hwui/canvas/CanvasOpRasterizer.cpp index 0093c38cf8a8..9297604197c0 100644 --- a/libs/hwui/canvas/CanvasOpRasterizer.cpp +++ b/libs/hwui/canvas/CanvasOpRasterizer.cpp @@ -33,21 +33,15 @@ void rasterizeCanvasBuffer(const CanvasOpBuffer& source, SkCanvas* destination) SkMatrix& currentGlobalTransform = globalMatrixStack.emplace_back(SkMatrix::I()); source.for_each([&]<CanvasOpType T>(const CanvasOpContainer<T> * op) { - if constexpr ( - T == CanvasOpType::BeginZ || - T == CanvasOpType::EndZ || - T == CanvasOpType::DrawLayer - ) { - // Do beginZ or endZ - LOG_ALWAYS_FATAL("TODO"); - return; - } else { + if constexpr (CanvasOpTraits::can_draw<CanvasOp<T>>) { // Generic OP // First apply the current transformation destination->setMatrix(SkMatrix::Concat(currentGlobalTransform, op->transform())); // Now draw it (*op)->draw(destination); + return; } + LOG_ALWAYS_FATAL("TODO, unable to rasterize %d", static_cast<int>(T)); }); } |