Revert "Create a new RenderPipeline for CPU only rendering"
This reverts commit 09a38e4e8c64ccf62573da7ffbe40cef90e573ae.
Reason for revert: b/331231487
Change-Id: If9529d7ba39edef707af50f67ca8cd4754bfe11b
diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.h b/libs/hwui/pipeline/skia/SkiaPipeline.h
index f9d37b9..befee89 100644
--- a/libs/hwui/pipeline/skia/SkiaPipeline.h
+++ b/libs/hwui/pipeline/skia/SkiaPipeline.h
@@ -42,9 +42,18 @@
void onDestroyHardwareResources() override;
+ bool pinImages(std::vector<SkImage*>& mutableImages) override;
+ bool pinImages(LsaVector<sk_sp<Bitmap>>& images) override { return false; }
+ void unpinImages() override;
+
void renderLayers(const LightGeometry& lightGeometry, LayerUpdateQueue* layerUpdateQueue,
bool opaque, const LightInfo& lightInfo) override;
+ // If the given node didn't have a layer surface, or had one of the wrong size, this method
+ // creates a new one and returns true. Otherwise does nothing and returns false.
+ bool createOrUpdateLayer(RenderNode* node, const DamageAccumulator& damageAccumulator,
+ ErrorHandler* errorHandler) override;
+
void setSurfaceColorProperties(ColorMode colorMode) override;
SkColorType getSurfaceColorType() const override { return mSurfaceColorType; }
sk_sp<SkColorSpace> getSurfaceColorSpace() override { return mSurfaceColorSpace; }
@@ -54,8 +63,9 @@
const Rect& contentDrawBounds, sk_sp<SkSurface> surface,
const SkMatrix& preTransform);
- void renderLayerImpl(RenderNode* layerNode, const Rect& layerDamage);
- virtual void renderLayersImpl(const LayerUpdateQueue& layers, bool opaque) = 0;
+ static void prepareToDraw(const renderthread::RenderThread& thread, Bitmap* bitmap);
+
+ void renderLayersImpl(const LayerUpdateQueue& layers, bool opaque);
// Sets the recording callback to the provided function and the recording mode
// to CallbackAPI
@@ -65,11 +75,19 @@
mCaptureMode = callback ? CaptureMode::CallbackAPI : CaptureMode::None;
}
+ virtual void setHardwareBuffer(AHardwareBuffer* buffer) override;
+ bool hasHardwareBuffer() override { return mHardwareBuffer != nullptr; }
+
void setTargetSdrHdrRatio(float ratio) override;
protected:
+ sk_sp<SkSurface> getBufferSkSurface(
+ const renderthread::HardwareBufferRenderParams& bufferParams);
+ void dumpResourceCacheUsage() const;
+
renderthread::RenderThread& mRenderThread;
+ AHardwareBuffer* mHardwareBuffer = nullptr;
sk_sp<SkSurface> mBufferSurface = nullptr;
sk_sp<SkColorSpace> mBufferColorSpace = nullptr;
@@ -107,6 +125,8 @@
// Set up a multi frame capture.
bool setupMultiFrameCapture();
+ std::vector<sk_sp<SkImage>> mPinnedImages;
+
// Block of properties used only for debugging to record a SkPicture and save it in a file.
// There are three possible ways of recording drawing commands.
enum class CaptureMode {