diff options
Diffstat (limited to 'graphics/composer/2.1/utils/resources/ComposerResources.cpp')
-rw-r--r-- | graphics/composer/2.1/utils/resources/ComposerResources.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/graphics/composer/2.1/utils/resources/ComposerResources.cpp b/graphics/composer/2.1/utils/resources/ComposerResources.cpp index 21f60355f8..e52bf7124a 100644 --- a/graphics/composer/2.1/utils/resources/ComposerResources.cpp +++ b/graphics/composer/2.1/utils/resources/ComposerResources.cpp @@ -144,6 +144,10 @@ ComposerHandleCache::~ComposerHandleCache() { } } +size_t ComposerHandleCache::getCacheSize() const { + return mHandles.size(); +} + bool ComposerHandleCache::initCache(HandleType type, uint32_t cacheSize) { // already initialized if (mHandleType != HandleType::INVALID) { @@ -220,6 +224,14 @@ bool ComposerDisplayResource::initClientTargetCache(uint32_t cacheSize) { return mClientTargetCache.initCache(ComposerHandleCache::HandleType::BUFFER, cacheSize); } +size_t ComposerDisplayResource::getClientTargetCacheSize() const { + return mClientTargetCache.getCacheSize(); +} + +size_t ComposerDisplayResource::getOutputBufferCacheSize() const { + return mOutputBufferCache.getCacheSize(); +} + bool ComposerDisplayResource::isVirtual() const { return mType == DisplayType::VIRTUAL; } @@ -293,6 +305,10 @@ void ComposerResources::clear(RemoveDisplay removeDisplay) { mDisplayResources.clear(); } +bool ComposerResources::hasDisplay(Display display) { + return mDisplayResources.count(display) > 0; +} + Error ComposerResources::addPhysicalDisplay(Display display) { auto displayResource = createDisplayResource(ComposerDisplayResource::DisplayType::PHYSICAL, 0); @@ -327,6 +343,26 @@ Error ComposerResources::setDisplayClientTargetCacheSize(Display display, : Error::BAD_PARAMETER; } +Error ComposerResources::getDisplayClientTargetCacheSize(Display display, size_t* outCacheSize) { + std::lock_guard<std::mutex> lock(mDisplayResourcesMutex); + ComposerDisplayResource* displayResource = findDisplayResourceLocked(display); + if (!displayResource) { + return Error::BAD_DISPLAY; + } + *outCacheSize = displayResource->getClientTargetCacheSize(); + return Error::NONE; +} + +Error ComposerResources::getDisplayOutputBufferCacheSize(Display display, size_t* outCacheSize) { + std::lock_guard<std::mutex> lock(mDisplayResourcesMutex); + ComposerDisplayResource* displayResource = findDisplayResourceLocked(display); + if (!displayResource) { + return Error::BAD_DISPLAY; + } + *outCacheSize = displayResource->getOutputBufferCacheSize(); + return Error::NONE; +} + Error ComposerResources::addLayer(Display display, Layer layer, uint32_t bufferCacheSize) { auto layerResource = createLayerResource(bufferCacheSize); |