Remove LayerRenderer.

There is only one caller each for the static functions here so this
CL moves the logic to the caller.  Also by moving some of the code
into the pipeline it makes it easier for future changes to configure
how a pipeline handles a layer.

Change-Id: Ib735b5154325cbb658fd151f7a19dbf434ab44b7
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 9b0be49..5e9b9b3 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -21,7 +21,6 @@
 #include "Caches.h"
 #include "DeferredLayerUpdater.h"
 #include "EglManager.h"
-#include "LayerRenderer.h"
 #include "LayerUpdateQueue.h"
 #include "Properties.h"
 #include "Readback.h"
@@ -504,7 +503,7 @@
     }
 }
 
-Layer* CanvasContext::createTextureLayer() {
+DeferredLayerUpdater* CanvasContext::createTextureLayer() {
     return mRenderPipeline->createTextureLayer();
 }
 
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index 688bf2a..a3b6261 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -100,7 +100,7 @@
 
     static void invokeFunctor(RenderThread& thread, Functor* functor);
 
-    Layer* createTextureLayer();
+    DeferredLayerUpdater* createTextureLayer();
 
     ANDROID_API static void setTextureAtlas(RenderThread& thread,
             const sp<GraphicBuffer>& buffer, int64_t* map, size_t mapSize);
diff --git a/libs/hwui/renderthread/IRenderPipeline.h b/libs/hwui/renderthread/IRenderPipeline.h
index 0c0fbe9..3250fed 100644
--- a/libs/hwui/renderthread/IRenderPipeline.h
+++ b/libs/hwui/renderthread/IRenderPipeline.h
@@ -57,7 +57,7 @@
     virtual bool swapBuffers(const Frame& frame, bool drew, const SkRect& screenDirty,
             FrameInfo* currentFrameInfo, bool* requireSwap) = 0;
     virtual bool copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap) = 0;
-    virtual Layer* createTextureLayer() = 0;
+    virtual DeferredLayerUpdater* createTextureLayer() = 0;
     virtual bool setSurface(Surface* window, SwapBehavior swapBehavior) = 0;
     virtual void onStop() = 0;
     virtual bool isSurfaceReady() = 0;
diff --git a/libs/hwui/renderthread/OpenGLPipeline.cpp b/libs/hwui/renderthread/OpenGLPipeline.cpp
index 3a2b155..36be387 100644
--- a/libs/hwui/renderthread/OpenGLPipeline.cpp
+++ b/libs/hwui/renderthread/OpenGLPipeline.cpp
@@ -18,7 +18,6 @@
 
 #include "DeferredLayerUpdater.h"
 #include "EglManager.h"
-#include "LayerRenderer.h"
 #include "renderstate/RenderState.h"
 #include "Readback.h"
 
@@ -120,9 +119,13 @@
             == CopyResult::Success;
 }
 
-Layer* OpenGLPipeline::createTextureLayer() {
+DeferredLayerUpdater* OpenGLPipeline::createTextureLayer() {
     mEglManager.initialize();
-    return LayerRenderer::createTextureLayer(mRenderThread.renderState());
+    Layer* layer = new Layer(mRenderThread.renderState(), 0, 0);
+    Caches::getInstance().textureState().activateTexture(0);
+    layer->generateTexture();
+
+    return new DeferredLayerUpdater(layer);
 }
 
 void OpenGLPipeline::onStop() {
diff --git a/libs/hwui/renderthread/OpenGLPipeline.h b/libs/hwui/renderthread/OpenGLPipeline.h
index a6d22ee..e08fd9b 100644
--- a/libs/hwui/renderthread/OpenGLPipeline.h
+++ b/libs/hwui/renderthread/OpenGLPipeline.h
@@ -46,7 +46,7 @@
     bool swapBuffers(const Frame& frame, bool drew, const SkRect& screenDirty,
             FrameInfo* currentFrameInfo, bool* requireSwap) override;
     bool copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap) override;
-    Layer* createTextureLayer() override;
+    DeferredLayerUpdater* createTextureLayer() override;
     bool setSurface(Surface* window, SwapBehavior swapBehavior) override;
     void onStop() override;
     bool isSurfaceReady() override;
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index d860acd..ad1af40 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -18,7 +18,6 @@
 
 #include "DeferredLayerUpdater.h"
 #include "DisplayList.h"
-#include "LayerRenderer.h"
 #include "Readback.h"
 #include "Rect.h"
 #include "renderthread/CanvasContext.h"
@@ -266,9 +265,7 @@
 }
 
 CREATE_BRIDGE1(createTextureLayer, CanvasContext* context) {
-    Layer* layer = args->context->createTextureLayer();
-    if (!layer) return nullptr;
-    return new DeferredLayerUpdater(layer);
+    return args->context->createTextureLayer();
 }
 
 DeferredLayerUpdater* RenderProxy::createTextureLayer() {