Fix profile hwui onscreen as bars on SkiaVK

Fixes: 242081380
Test: eyeball
Change-Id: Ic1b04757e65533ef29182366cd24b6730bb10876
This commit is contained in:
John Reck
2022-08-12 14:28:31 -04:00
parent ec5edadff7
commit c30836d824
4 changed files with 10 additions and 13 deletions

View File

@@ -112,7 +112,7 @@ IRenderPipeline::DrawResult SkiaOpenGLPipeline::draw(
if (CC_UNLIKELY(Properties::showDirtyRegions ||
ProfileType::None != Properties::getProfileType())) {
SkCanvas* profileCanvas = surface->getCanvas();
SkiaProfileRenderer profileRenderer(profileCanvas);
SkiaProfileRenderer profileRenderer(profileCanvas, frame.width(), frame.height());
profiler->draw(profileRenderer);
}

View File

@@ -33,13 +33,5 @@ void SkiaProfileRenderer::drawRects(const float* rects, int count, const SkPaint
}
}
uint32_t SkiaProfileRenderer::getViewportWidth() {
return mCanvas->imageInfo().width();
}
uint32_t SkiaProfileRenderer::getViewportHeight() {
return mCanvas->imageInfo().height();
}
} /* namespace uirenderer */
} /* namespace android */

View File

@@ -23,18 +23,21 @@ namespace uirenderer {
class SkiaProfileRenderer : public IProfileRenderer {
public:
explicit SkiaProfileRenderer(SkCanvas* canvas) : mCanvas(canvas) {}
explicit SkiaProfileRenderer(SkCanvas* canvas, uint32_t width, uint32_t height)
: mCanvas(canvas), mWidth(width), mHeight(height) {}
void drawRect(float left, float top, float right, float bottom, const SkPaint& paint) override;
void drawRects(const float* rects, int count, const SkPaint& paint) override;
uint32_t getViewportWidth() override;
uint32_t getViewportHeight() override;
uint32_t getViewportWidth() override { return mWidth; }
uint32_t getViewportHeight() override { return mHeight; }
virtual ~SkiaProfileRenderer() {}
private:
// Does not have ownership.
SkCanvas* mCanvas;
uint32_t mWidth;
uint32_t mHeight;
};
} /* namespace uirenderer */

View File

@@ -88,7 +88,9 @@ IRenderPipeline::DrawResult SkiaVulkanPipeline::draw(
if (CC_UNLIKELY(Properties::showDirtyRegions ||
ProfileType::None != Properties::getProfileType())) {
SkCanvas* profileCanvas = backBuffer->getCanvas();
SkiaProfileRenderer profileRenderer(profileCanvas);
SkAutoCanvasRestore saver(profileCanvas, true);
profileCanvas->concat(mVkSurface->getCurrentPreTransform());
SkiaProfileRenderer profileRenderer(profileCanvas, frame.width(), frame.height());
profiler->draw(profileRenderer);
}