Revert "TextureView Vulkan support and optimized OpenGL draw"

This reverts commit c8e22a653297837da9a80b0ba65f6854c8986c96.

Reason for revert: broke camera, b/113555199

Bug: 113555199
Change-Id: Iae9b462694d5de0cd99427afead63b567fb4d71d
diff --git a/libs/hwui/DeferredLayerUpdater.h b/libs/hwui/DeferredLayerUpdater.h
index 4c323b8..fe3ee7a 100644
--- a/libs/hwui/DeferredLayerUpdater.h
+++ b/libs/hwui/DeferredLayerUpdater.h
@@ -17,19 +17,18 @@
 #pragma once
 
 #include <SkColorFilter.h>
-#include <SkImage.h>
 #include <SkMatrix.h>
 #include <cutils/compiler.h>
-#include <map>
+#include <gui/GLConsumer.h>
 #include <system/graphics.h>
 #include <utils/StrongPointer.h>
 
 #include <GLES2/gl2.h>
 #include <GLES2/gl2ext.h>
 
-#include "surfacetexture/SurfaceTexture.h"
 #include "Layer.h"
 #include "Rect.h"
+#include "renderthread/RenderThread.h"
 
 namespace android {
 namespace uirenderer {
@@ -42,7 +41,12 @@
 public:
     // Note that DeferredLayerUpdater assumes it is taking ownership of the layer
     // and will not call incrementRef on it as a result.
-    ANDROID_API explicit DeferredLayerUpdater(RenderState& renderState);
+    typedef std::function<Layer*(RenderState& renderState, uint32_t layerWidth,
+                                 uint32_t layerHeight, sk_sp<SkColorFilter> colorFilter, int alpha,
+                                 SkBlendMode mode, bool blend)>
+            CreateLayerFn;
+    ANDROID_API explicit DeferredLayerUpdater(RenderState& renderState, CreateLayerFn createLayerFn,
+                                              Layer::Api layerApi);
 
     ANDROID_API ~DeferredLayerUpdater();
 
@@ -66,13 +70,13 @@
         return false;
     }
 
-    ANDROID_API void setSurfaceTexture(const sp<SurfaceTexture>& consumer) {
-        if (consumer.get() != mSurfaceTexture.get()) {
-            mSurfaceTexture = consumer;
+    ANDROID_API void setSurfaceTexture(const sp<GLConsumer>& texture) {
+        if (texture.get() != mSurfaceTexture.get()) {
+            mSurfaceTexture = texture;
 
-            GLenum target = consumer->getCurrentTextureTarget();
+            GLenum target = texture->getCurrentTextureTarget();
             LOG_ALWAYS_FATAL_IF(target != GL_TEXTURE_2D && target != GL_TEXTURE_EXTERNAL_OES,
-                                "set unsupported SurfaceTexture with target %x", target);
+                                "set unsupported GLConsumer with target %x", target);
         }
     }
 
@@ -93,11 +97,12 @@
 
     void detachSurfaceTexture();
 
-    void updateLayer(bool forceFilter, const SkMatrix& textureTransform,
-            android_dataspace dataspace, const sk_sp<SkImage>& layerImage);
+    void updateLayer(bool forceFilter, const float* textureTransform, android_dataspace dataspace);
 
     void destroyLayer();
 
+    Layer::Api getBackingLayerApi() { return mLayerApi; }
+
 private:
     RenderState& mRenderState;
 
@@ -108,12 +113,17 @@
     sk_sp<SkColorFilter> mColorFilter;
     int mAlpha = 255;
     SkBlendMode mMode = SkBlendMode::kSrcOver;
-    sp<SurfaceTexture> mSurfaceTexture;
+    sp<GLConsumer> mSurfaceTexture;
     SkMatrix* mTransform;
     bool mGLContextAttached;
     bool mUpdateTexImage;
 
     Layer* mLayer;
+    Layer::Api mLayerApi;
+    CreateLayerFn mCreateLayerFn;
+
+    void doUpdateTexImage();
+    void doUpdateVkTexImage();
 };
 
 } /* namespace uirenderer */