Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support plugins #1266

Merged
merged 10 commits into from
May 25, 2024
Merged

Support plugins #1266

merged 10 commits into from
May 25, 2024

Commits on May 25, 2024

  1. backend/egl: don't call gl_deinit without a current context

    Otherwise epoxy will fail with assertion error.
    
    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    ca12415 View commit details
    Browse the repository at this point in the history
  2. backend: prepare to pluginify the backends

    Instead of a fixed table, allow an arbitrary number of backends to be
    registered through `backend_register`.
    
    Slightly refactored configuration validation.
    
    As a side-effect, you now have to explicitly specify a backend, because
    due to the dynamic nature of backends, there is no way to choose a
    default.
    
    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    e512542 View commit details
    Browse the repository at this point in the history
  3. config: support loading plugins

    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    7ae1858 View commit details
    Browse the repository at this point in the history
  4. plugin: export backend_register

    It's unclear which functions a custom backend will need, let's be
    conversative first.
    
    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    d9bc179 View commit details
    Browse the repository at this point in the history
  5. plugin: add picom API headers

    And add a pkgconfig file so they can be found.
    
    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    f5bebb3 View commit details
    Browse the repository at this point in the history
  6. backend: turn max_buffer_age into a function

    We want to change the backend interface as little as possible once we
    release it as a public interface, so while we still can, we should try
    to give it maximum flexibility.
    
    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    5c1b0ba View commit details
    Browse the repository at this point in the history
  7. backend: add version for querying the backend's version

    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    21fe598 View commit details
    Browse the repository at this point in the history
  8. api: introduce the concept of backend specific plugins

    Allow loaded plugins to hook into specific backends.
    
    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    bbde4bb View commit details
    Browse the repository at this point in the history
  9. renderer: report present errors

    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    9c4f62c View commit details
    Browse the repository at this point in the history
  10. backend: embed backend_operations table in backend_base

    The idea is to allow backend plugins to override backend functions by
    modifying this table. Right now, when they do this they are actually
    changing a global variable and their change will persist after backend
    resets (!). Store the table inside backend_base solves this problem.
    
    Signed-off-by: Yuxuan Shui <[email protected]>
    yshui committed May 25, 2024
    Configuration menu
    Copy the full SHA
    bd26302 View commit details
    Browse the repository at this point in the history