diff options
author | Stan Iliev <stani@google.com> | 2018-08-31 18:35:06 +0000 |
---|---|---|
committer | Stan Iliev <stani@google.com> | 2018-08-31 22:13:15 +0000 |
commit | 85f9096b5272c9a39e592e2e97cbbe6cb0e767ab (patch) | |
tree | 6d63c7fd5f5d8bea10a540d556f44769520b3057 /libs/hwui/DeferredLayerUpdater.h | |
parent | f5121c964b5cc7ca4c71313b7a25abdd81377e36 (diff) |
Revert "Revert "TextureView Vulkan support and optimized OpenGL draw""
This reverts commit 867c43de0544217d26c3ee18f4d6603bb2ea97ce.
Reason for revert: Fixed issue with unsupported hardware buffer formats by landing https://skia-review.googlesource.com/c/skia/+/150470 "Support more hardware buffer formats"
Bug: 113673613
Change-Id: I1f7c528f138e290160e75833c8d989d9535002ee
Diffstat (limited to 'libs/hwui/DeferredLayerUpdater.h')
-rw-r--r-- | libs/hwui/DeferredLayerUpdater.h | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/libs/hwui/DeferredLayerUpdater.h b/libs/hwui/DeferredLayerUpdater.h index fe3ee7a2b4c6..4c323b861002 100644 --- a/libs/hwui/DeferredLayerUpdater.h +++ b/libs/hwui/DeferredLayerUpdater.h @@ -17,18 +17,19 @@ #pragma once #include <SkColorFilter.h> +#include <SkImage.h> #include <SkMatrix.h> #include <cutils/compiler.h> -#include <gui/GLConsumer.h> +#include <map> #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 { @@ -41,12 +42,7 @@ class DeferredLayerUpdater : public VirtualLightRefBase { public: // Note that DeferredLayerUpdater assumes it is taking ownership of the layer // and will not call incrementRef on it as a result. - 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 explicit DeferredLayerUpdater(RenderState& renderState); ANDROID_API ~DeferredLayerUpdater(); @@ -70,13 +66,13 @@ public: return false; } - ANDROID_API void setSurfaceTexture(const sp<GLConsumer>& texture) { - if (texture.get() != mSurfaceTexture.get()) { - mSurfaceTexture = texture; + ANDROID_API void setSurfaceTexture(const sp<SurfaceTexture>& consumer) { + if (consumer.get() != mSurfaceTexture.get()) { + mSurfaceTexture = consumer; - GLenum target = texture->getCurrentTextureTarget(); + GLenum target = consumer->getCurrentTextureTarget(); LOG_ALWAYS_FATAL_IF(target != GL_TEXTURE_2D && target != GL_TEXTURE_EXTERNAL_OES, - "set unsupported GLConsumer with target %x", target); + "set unsupported SurfaceTexture with target %x", target); } } @@ -97,12 +93,11 @@ public: void detachSurfaceTexture(); - void updateLayer(bool forceFilter, const float* textureTransform, android_dataspace dataspace); + void updateLayer(bool forceFilter, const SkMatrix& textureTransform, + android_dataspace dataspace, const sk_sp<SkImage>& layerImage); void destroyLayer(); - Layer::Api getBackingLayerApi() { return mLayerApi; } - private: RenderState& mRenderState; @@ -113,17 +108,12 @@ private: sk_sp<SkColorFilter> mColorFilter; int mAlpha = 255; SkBlendMode mMode = SkBlendMode::kSrcOver; - sp<GLConsumer> mSurfaceTexture; + sp<SurfaceTexture> mSurfaceTexture; SkMatrix* mTransform; bool mGLContextAttached; bool mUpdateTexImage; Layer* mLayer; - Layer::Api mLayerApi; - CreateLayerFn mCreateLayerFn; - - void doUpdateTexImage(); - void doUpdateVkTexImage(); }; } /* namespace uirenderer */ |