19 #ifndef MIR_GRAPHICS_MESA_DISPLAY_HELPERS_H_
20 #define MIR_GRAPHICS_MESA_DISPLAY_HELPERS_H_
28 #pragma GCC diagnostic push
29 #pragma GCC diagnostic warning "-Wall"
31 #pragma GCC diagnostic pop
34 #include <xf86drmMode.h>
45 typedef std::unique_ptr<gbm_surface,std::function<void(gbm_surface*)>>
GBMSurfaceUPtr;
59 void setup(std::shared_ptr<mir::udev::Context>
const& udev);
71 int is_appropriate_device(std::shared_ptr<mir::udev::Context>
const& udev,
mir::udev::Device const& dev);
73 int count_connections(
int fd);
75 int open_drm_device(std::shared_ptr<mir::udev::Context>
const& udev);
87 void setup(
const DRMHelper& drm);
88 void setup(
int drm_fd);
106 EGLContext shared_context);
118 EGLint
const depth_buffer_bits;
119 EGLint
const stencil_buffer_bits;
120 EGLDisplay egl_display;
121 EGLConfig egl_config;
122 EGLContext egl_context;
123 EGLSurface egl_surface;
124 bool should_terminate_egl;
bool release_current() const
Definition: display_helpers.cpp:383
int get_authenticated_fd()
Definition: display_helpers.cpp:49
DRMHelper()
Definition: display_helpers.h:53
std::unique_ptr< gbm_surface, std::function< void(gbm_surface *)> > GBMSurfaceUPtr
Definition: display_helpers.h:45
~EGLHelper() noexcept
Definition: display_helpers.cpp:355
Definition: display_helpers.h:50
~GBMHelper()
Definition: display_helpers.cpp:289
void setup(const DRMHelper &drm)
Definition: display_helpers.cpp:258
EGLHelper & operator=(const EGLHelper &)=delete
DRMHelper & operator=(const DRMHelper &)=delete
void setup(std::shared_ptr< mir::udev::Context > const &udev)
Definition: display_helpers.cpp:41
bool swap_buffers()
Definition: display_helpers.cpp:371
GBMHelper()
Definition: display_helpers.h:81
unsigned int width
Definition: black_arrow.c:4
Interface for customizing aspects of the GL config used by the server.
Definition: gl_config.h:30
void report_egl_configuration(std::function< void(EGLDisplay, EGLConfig)>)
Definition: display_helpers.cpp:438
void auth_magic(drm_magic_t magic) const
Definition: display_helpers.cpp:97
Definition: display_helpers.h:78
Definition: display_helpers.h:94
int fd
Definition: display_helpers.h:66
bool make_current() const
Definition: display_helpers.cpp:377
void setup(GBMHelper const &gbm)
Definition: display_helpers.cpp:308
unsigned int height
Definition: black_arrow.c:5
void drop_master() const
Definition: display_helpers.cpp:117
GBMSurfaceUPtr create_scanout_surface(uint32_t width, uint32_t height)
Definition: display_helpers.cpp:274
EGLContext context()
Definition: display_helpers.h:112
gbm_device * device
Definition: display_helpers.h:91
~DRMHelper()
Definition: display_helpers.cpp:248
EGLHelper(GLConfig const &gl_config)
Definition: display_helpers.cpp:299
GBMHelper & operator=(const GBMHelper &)=delete
void set_master() const
Definition: display_helpers.cpp:137