summaryrefslogtreecommitdiff
path: root/libs/hwui/DeferredLayerUpdater.cpp
diff options
context:
space:
mode:
authorGreg Daniel <egdaniel@google.com>2017-01-04 14:45:56 -0500
committerGreg Daniel <egdaniel@google.com>2017-01-18 09:12:31 -0500
commit98c78dad1969e2321cfee2085faa55d95bba7e29 (patch)
tree49183cc1b7b819b2f8084bbf814a50ca3bd12cf4 /libs/hwui/DeferredLayerUpdater.cpp
parent45ec62ba72c5017fae7d8baab20bfb0d4c99c627 (diff)
Update hwui_unit_tests to support running with Vulkan backend.
Added Macros for RENDERTHREAD_TESTS which run these tests using specific backends. RENDERTHREAD_TESTS - Runs OpenGL, SkiaGL, and SkiaVulkan RENDERTHREAD_SKIA_TESTS - Runs SkiaGL and SkiaVulkan RENDERTHREAD_OPENGL_TESTS - Runs OpenGL Test: manual running of hwui_unit_tests Change-Id: Ia7420ee7a38803a15e2d58394d14b38cae8208d3
Diffstat (limited to 'libs/hwui/DeferredLayerUpdater.cpp')
-rw-r--r--libs/hwui/DeferredLayerUpdater.cpp28
1 files changed, 11 insertions, 17 deletions
diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp
index 3e8e8a1a1ca3..0ae50e96fc39 100644
--- a/libs/hwui/DeferredLayerUpdater.cpp
+++ b/libs/hwui/DeferredLayerUpdater.cpp
@@ -131,7 +131,7 @@ void DeferredLayerUpdater::doUpdateVkTexImage() {
mLayer->getApi(), Layer::Api::OpenGL, Layer::Api::Vulkan);
static const mat4 identityMatrix;
- updateLayer(false, identityMatrix.data);
+ updateLayer(false, GL_NONE, identityMatrix.data);
VkLayer* vkLayer = static_cast<VkLayer*>(mLayer);
vkLayer->updateTexture();
@@ -139,26 +139,20 @@ void DeferredLayerUpdater::doUpdateVkTexImage() {
void DeferredLayerUpdater::updateLayer(bool forceFilter, GLenum renderTarget,
const float* textureTransform) {
- LOG_ALWAYS_FATAL_IF(mLayer->getApi() != Layer::Api::OpenGL,
- "updateLayer non GL backend %x, GL %x, VK %x",
- mLayer->getApi(), Layer::Api::OpenGL, Layer::Api::Vulkan);
-
- updateLayer(forceFilter, textureTransform);
-
- GlLayer* glLayer = static_cast<GlLayer*>(mLayer);
- if (renderTarget != glLayer->getRenderTarget()) {
- glLayer->setRenderTarget(renderTarget);
- glLayer->bindTexture();
- glLayer->setFilter(GL_NEAREST, false, true);
- glLayer->setWrap(GL_CLAMP_TO_EDGE, false, true);
- }
-}
-
-void DeferredLayerUpdater::updateLayer(bool forceFilter, const float* textureTransform) {
mLayer->setBlend(mBlend);
mLayer->setForceFilter(forceFilter);
mLayer->setSize(mWidth, mHeight);
mLayer->getTexTransform().load(textureTransform);
+
+ if (mLayer->getApi() == Layer::Api::OpenGL) {
+ GlLayer* glLayer = static_cast<GlLayer*>(mLayer);
+ if (renderTarget != glLayer->getRenderTarget()) {
+ glLayer->setRenderTarget(renderTarget);
+ glLayer->bindTexture();
+ glLayer->setFilter(GL_NEAREST, false, true);
+ glLayer->setWrap(GL_CLAMP_TO_EDGE, false, true);
+ }
+ }
}
void DeferredLayerUpdater::detachSurfaceTexture() {