diff options
author | Greg Daniel <egdaniel@google.com> | 2017-01-04 14:45:56 -0500 |
---|---|---|
committer | Greg Daniel <egdaniel@google.com> | 2017-01-18 09:12:31 -0500 |
commit | 98c78dad1969e2321cfee2085faa55d95bba7e29 (patch) | |
tree | 49183cc1b7b819b2f8084bbf814a50ca3bd12cf4 /libs/hwui/DeferredLayerUpdater.cpp | |
parent | 45ec62ba72c5017fae7d8baab20bfb0d4c99c627 (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.cpp | 28 |
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() { |