diff options
author | 2018-12-29 14:27:11 -0800 | |
---|---|---|
committer | 2019-01-14 14:08:53 -0800 | |
commit | 925bf7fe6681fe2981522cd9de54ceb2565bc7f4 (patch) | |
tree | 0e2a1a63241c4a2c2ddb425080cedbcef6a937f6 /libs/ui/GraphicBufferMapper.cpp | |
parent | d380e2c463f461cba82536043c1b2cd573f678ef (diff) |
gralloc: add allocator and mapper 3.0 support to SF
Add support for IAllocator and IMapper 3.0 support
to SurfaceFlinger.
Bug: 120493579
Test: manual
Change-Id: I8b7311cfa6b58502b334460d65eb66715ef429e8
Diffstat (limited to 'libs/ui/GraphicBufferMapper.cpp')
-rw-r--r-- | libs/ui/GraphicBufferMapper.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/libs/ui/GraphicBufferMapper.cpp b/libs/ui/GraphicBufferMapper.cpp index d7bf4d558c..b04932938c 100644 --- a/libs/ui/GraphicBufferMapper.cpp +++ b/libs/ui/GraphicBufferMapper.cpp @@ -34,6 +34,7 @@ #include <ui/Gralloc.h> #include <ui/Gralloc2.h> +#include <ui/Gralloc3.h> #include <ui/GraphicBuffer.h> #include <system/graphics.h> @@ -45,9 +46,19 @@ ANDROID_SINGLETON_STATIC_INSTANCE( GraphicBufferMapper ) void GraphicBufferMapper::preloadHal() { Gralloc2Mapper::preload(); + Gralloc3Mapper::preload(); } -GraphicBufferMapper::GraphicBufferMapper() : mMapper(std::make_unique<const Gralloc2Mapper>()) {} +GraphicBufferMapper::GraphicBufferMapper() { + mMapper = std::make_unique<const Gralloc3Mapper>(); + if (!mMapper->isSupported()) { + mMapper = std::make_unique<const Gralloc2Mapper>(); + } + + if (!mMapper->isSupported()) { + LOG_ALWAYS_FATAL("gralloc-mapper is missing"); + } +} status_t GraphicBufferMapper::importBuffer(buffer_handle_t rawHandle, uint32_t width, uint32_t height, uint32_t layerCount, |