diff options
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/hwui/DisplayListCanvas.cpp | 4 | ||||
| -rw-r--r-- | libs/hwui/DisplayListCanvas.h | 2 | ||||
| -rw-r--r-- | libs/hwui/DisplayListOp.h | 8 | ||||
| -rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 8 | ||||
| -rwxr-xr-x | libs/hwui/OpenGLRenderer.h | 2 | ||||
| -rw-r--r-- | libs/hwui/RenderNode.cpp | 2 |
6 files changed, 13 insertions, 13 deletions
diff --git a/libs/hwui/DisplayListCanvas.cpp b/libs/hwui/DisplayListCanvas.cpp index 22cddfc6d1cd..61c5883cfbfb 100644 --- a/libs/hwui/DisplayListCanvas.cpp +++ b/libs/hwui/DisplayListCanvas.cpp @@ -221,11 +221,11 @@ void DisplayListCanvas::drawRenderNode(RenderNode* renderNode) { addRenderNodeOp(op); } -void DisplayListCanvas::drawLayer(DeferredLayerUpdater* layerHandle) { +void DisplayListCanvas::drawLayer(DeferredLayerUpdater* layerHandle, float x, float y) { // We ref the DeferredLayerUpdater due to its thread-safe ref-counting // semantics. mDisplayListData->ref(layerHandle); - addDrawOp(new (alloc()) DrawLayerOp(layerHandle->backingLayer())); + addDrawOp(new (alloc()) DrawLayerOp(layerHandle->backingLayer(), x, y)); } void DisplayListCanvas::drawBitmap(const SkBitmap* bitmap, const SkPaint* paint) { diff --git a/libs/hwui/DisplayListCanvas.h b/libs/hwui/DisplayListCanvas.h index 978cceab3779..3b619046612f 100644 --- a/libs/hwui/DisplayListCanvas.h +++ b/libs/hwui/DisplayListCanvas.h @@ -91,7 +91,7 @@ public: // ---------------------------------------------------------------------------- // HWUI Canvas draw operations - special // ---------------------------------------------------------------------------- - void drawLayer(DeferredLayerUpdater* layerHandle); + void drawLayer(DeferredLayerUpdater* layerHandle, float x, float y); void drawRenderNode(RenderNode* renderNode); // TODO: rename for consistency diff --git a/libs/hwui/DisplayListOp.h b/libs/hwui/DisplayListOp.h index cd5d0ddc8c76..8ff58d4f64f5 100644 --- a/libs/hwui/DisplayListOp.h +++ b/libs/hwui/DisplayListOp.h @@ -1541,15 +1541,15 @@ private: class DrawLayerOp : public DrawOp { public: - DrawLayerOp(Layer* layer) - : DrawOp(nullptr), mLayer(layer) {} + DrawLayerOp(Layer* layer, float x, float y) + : DrawOp(nullptr), mLayer(layer), mX(x), mY(y) {} virtual void applyDraw(OpenGLRenderer& renderer, Rect& dirty) override { - renderer.drawLayer(mLayer); + renderer.drawLayer(mLayer, mX, mY); } virtual void output(int level, uint32_t logFlags) const override { - OP_LOG("Draw Layer %p", mLayer); + OP_LOG("Draw Layer %p at %f %f", mLayer, mX, mY); } virtual const char* name() override { return "DrawLayer"; } diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 84f35f8beacf..7a56d42b65e2 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -2267,7 +2267,7 @@ void OpenGLRenderer::drawPath(const SkPath* path, const SkPaint* paint) { mDirty = true; } -void OpenGLRenderer::drawLayer(Layer* layer) { +void OpenGLRenderer::drawLayer(Layer* layer, float x, float y) { if (!layer) { return; } @@ -2283,7 +2283,7 @@ void OpenGLRenderer::drawLayer(Layer* layer) { bool clipRequired = false; const bool rejected = mState.calculateQuickRejectForScissor( - 0, 0, layer->layer.getWidth(), layer->layer.getHeight(), + x, y, x + layer->layer.getWidth(), y + layer->layer.getHeight(), &clipRequired, nullptr, false); if (rejected) { @@ -2312,7 +2312,7 @@ void OpenGLRenderer::drawLayer(Layer* layer) { .setMeshTexturedIndexedQuads(layer->mesh, layer->meshElementCount) .setFillLayer(layer->getTexture(), layer->getColorFilter(), getLayerAlpha(layer), layer->getMode(), Blend::ModeOrderSwap::NoSwap) .setTransform(*currentSnapshot(), TransformFlags::None) - .setModelViewOffsetRectSnap(0, 0, Rect(0, 0, layer->layer.getWidth(), layer->layer.getHeight())) + .setModelViewOffsetRectSnap(x, y, Rect(0, 0, layer->layer.getWidth(), layer->layer.getHeight())) .build(); DRAW_DOUBLE_STENCIL_IF(!layer->hasDrawnSinceUpdate, renderGlop(glop)); #if DEBUG_LAYERS_AS_REGIONS @@ -2325,7 +2325,7 @@ void OpenGLRenderer::drawLayer(Layer* layer) { SkPaint paint; paint.setColor(0x7f00ff00); - drawColorRect(0, 0, layer->layer.getWidth(), layer->layer.getHeight(), &paint); + drawColorRect(x, y, x + layer->layer.getWidth(), y + layer->layer.getHeight(), &paint); } } layer->hasDrawnSinceUpdate = true; diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h index 501a219b91f4..4f75482f06e5 100755 --- a/libs/hwui/OpenGLRenderer.h +++ b/libs/hwui/OpenGLRenderer.h @@ -187,7 +187,7 @@ public: const SkPaint* paint, int flags); void drawRenderNode(RenderNode* displayList, Rect& dirty, int32_t replayFlags = 1); - void drawLayer(Layer* layer); + void drawLayer(Layer* layer, float x, float y); void drawBitmap(const SkBitmap* bitmap, const SkPaint* paint); void drawBitmaps(const SkBitmap* bitmap, AssetAtlas::Entry* entry, int bitmapCount, TextureVertex* vertices, bool pureTranslate, const Rect& bounds, const SkPaint* paint); diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp index 4ae152196be0..48da3e8b380e 100644 --- a/libs/hwui/RenderNode.cpp +++ b/libs/hwui/RenderNode.cpp @@ -875,7 +875,7 @@ void RenderNode::issueOperations(OpenGLRenderer& renderer, T& handler) { renderer.setBaseTransform(initialTransform); if (drawLayer) { - handler(new (alloc) DrawLayerOp(mLayer), + handler(new (alloc) DrawLayerOp(mLayer, 0, 0), renderer.getSaveCount() - 1, properties().getClipToBounds()); } else { const int saveCountOffset = renderer.getSaveCount() - 1; |