diff options
Diffstat (limited to 'drm/DrmFbImporter.cpp')
-rw-r--r-- | drm/DrmFbImporter.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drm/DrmFbImporter.cpp b/drm/DrmFbImporter.cpp index 6f2abe8..eeab076 100644 --- a/drm/DrmFbImporter.cpp +++ b/drm/DrmFbImporter.cpp @@ -32,7 +32,7 @@ namespace android { auto DrmFbIdHandle::CreateInstance(hwc_drm_bo_t *bo, GemHandle first_gem_handle, - const std::shared_ptr<DrmDevice> &drm) + DrmDevice &drm) -> std::shared_ptr<DrmFbIdHandle> { // NOLINTNEXTLINE(cppcoreguidelines-owning-memory): priv. constructor usage std::shared_ptr<DrmFbIdHandle> local(new DrmFbIdHandle(drm)); @@ -44,7 +44,7 @@ auto DrmFbIdHandle::CreateInstance(hwc_drm_bo_t *bo, GemHandle first_gem_handle, for (size_t i = 1; i < local->gem_handles_.size(); i++) { if (bo->prime_fds[i] > 0) { if (bo->prime_fds[i] != bo->prime_fds[0]) { - err = drmPrimeFDToHandle(drm->fd(), bo->prime_fds[i], + err = drmPrimeFDToHandle(drm.GetFd(), bo->prime_fds[i], &local->gem_handles_.at(i)); if (err != 0) { ALOGE("failed to import prime fd %d errno=%d", bo->prime_fds[i], @@ -59,7 +59,7 @@ auto DrmFbIdHandle::CreateInstance(hwc_drm_bo_t *bo, GemHandle first_gem_handle, bool has_modifiers = bo->modifiers[0] != DRM_FORMAT_MOD_NONE && bo->modifiers[0] != DRM_FORMAT_MOD_INVALID; - if (!drm->HasAddFb2ModifiersSupport() && has_modifiers) { + if (!drm.HasAddFb2ModifiersSupport() && has_modifiers) { ALOGE("No ADDFB2 with modifier support. Can't import modifier %" PRIu64, bo->modifiers[0]); local.reset(); @@ -68,11 +68,11 @@ auto DrmFbIdHandle::CreateInstance(hwc_drm_bo_t *bo, GemHandle first_gem_handle, /* Create framebuffer object */ if (!has_modifiers) { - err = drmModeAddFB2(drm->fd(), bo->width, bo->height, bo->format, + err = drmModeAddFB2(drm.GetFd(), bo->width, bo->height, bo->format, &local->gem_handles_[0], &bo->pitches[0], &bo->offsets[0], &local->fb_id_, 0); } else { - err = drmModeAddFB2WithModifiers(drm->fd(), bo->width, bo->height, + err = drmModeAddFB2WithModifiers(drm.GetFd(), bo->width, bo->height, bo->format, &local->gem_handles_[0], &bo->pitches[0], &bo->offsets[0], &bo->modifiers[0], &local->fb_id_, @@ -88,7 +88,7 @@ auto DrmFbIdHandle::CreateInstance(hwc_drm_bo_t *bo, GemHandle first_gem_handle, DrmFbIdHandle::~DrmFbIdHandle() { /* Destroy framebuffer object */ - if (drmModeRmFB(drm_->fd(), fb_id_) != 0) { + if (drmModeRmFB(drm_->GetFd(), fb_id_) != 0) { ALOGE("Failed to rm fb"); } @@ -109,7 +109,7 @@ DrmFbIdHandle::~DrmFbIdHandle() { continue; } gem_close.handle = gem_handles_[i]; - int32_t err = drmIoctl(drm_->fd(), DRM_IOCTL_GEM_CLOSE, &gem_close); + int32_t err = drmIoctl(drm_->GetFd(), DRM_IOCTL_GEM_CLOSE, &gem_close); if (err != 0) { ALOGE("Failed to close gem handle %d, errno: %d", gem_handles_[i], errno); } @@ -120,7 +120,8 @@ auto DrmFbImporter::GetOrCreateFbId(hwc_drm_bo_t *bo) -> std::shared_ptr<DrmFbIdHandle> { /* Lookup DrmFbIdHandle in cache first. First handle serves as a cache key. */ GemHandle first_handle = 0; - int32_t err = drmPrimeFDToHandle(drm_->fd(), bo->prime_fds[0], &first_handle); + int32_t err = drmPrimeFDToHandle(drm_->GetFd(), bo->prime_fds[0], + &first_handle); if (err != 0) { ALOGE("Failed to import prime fd %d ret=%d", bo->prime_fds[0], err); @@ -143,7 +144,7 @@ auto DrmFbImporter::GetOrCreateFbId(hwc_drm_bo_t *bo) } /* No DrmFbIdHandle found in cache, create framebuffer object */ - auto fb_id_handle = DrmFbIdHandle::CreateInstance(bo, first_handle, drm_); + auto fb_id_handle = DrmFbIdHandle::CreateInstance(bo, first_handle, *drm_); if (fb_id_handle) { drm_fb_id_handle_cache_[first_handle] = fb_id_handle; } |