Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D drm-hwcomposer
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 13
    • Issues 13
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 4
    • Merge requests 4
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • drm-hwcomposer
  • drm-hwcomposer
  • Issues
  • #35
Closed
Open
Issue created Jul 24, 2020 by Roman Kovalivskyi@roman.kovalivskyiGuest

Move HwcDisplay, HwcLayer and HwcCallback out of DrmHwcTwo class

As for now HwcDisplay, HwcLayer and HwcCallback are inner classes of DrmHwcTwo class. Moreover, they are private. This creates some issues with further code changes and for simpler support of the code in future those classes should be extracted as a separate entities.

  1. Those classes are logically separate from DrmHwcTwo just as DrmDevice or DrmConnector. All those entities could be described without DrmHwcTwo which serves only as a entry point and interface for whole composer infrastructure. I can't come up with any reason to have it inside private part of other class, honestly.

  2. Other composer implementations have similar types but none of them are private or hidden in some other class. As for example, one of Qualcomm implementations here, HWCDisplay is separate class which is instantiated from HWCSession which serves similar purpose to DrmHwcTwo.

  3. There's no easy way to pass display if there is any need of doing that. HwcDisplay is private internal class, so no way it could be used anywhere outside DrmHwcTwo, even tho it is desirable in some cases for simpler implementation of other features, for example it could be used for backend-specific validation requested in issue #34 (closed), to simplify passing of all data to separate validator.

Based on that I believe that this refactoring could simplify further development and improve code quality.

Assignee
Assign to
Time tracking