*/
EAPI Ecore_Drm2_Fb *ecore_drm2_fb_create(int fd, int width, int height, int depth, int bpp, unsigned int format);
-EAPI Ecore_Drm2_Fb *ecore_drm2_fb_gbm_create(int fd, int width, int height, int depth, int bpp, unsigned int format, unsigned int handle, unsigned int stride);
+EAPI Ecore_Drm2_Fb *ecore_drm2_fb_gbm_create(int fd, int width, int height, int depth, int bpp, unsigned int format, unsigned int handle, unsigned int stride, void *bo);
/**
* Destroy a framebuffer object
*/
EAPI void ecore_drm2_output_user_data_set(Ecore_Drm2_Output *o, void *data);
+/**
+ * Get the Framebuffer's gbm buffer object
+ *
+ * @param fb The framebuffer to query
+ *
+ * @return The gbm bo for the framebuffer
+ *
+ * @ingroup Ecore_Drm2_Output_Group
+ * @since 1.19
+ */
+EAPI void *ecore_drm2_fb_bo_get(Ecore_Drm2_Fb *fb);
+
# endif
#endif
}
EAPI Ecore_Drm2_Fb *
-ecore_drm2_fb_gbm_create(int fd, int width, int height, int depth, int bpp, unsigned int format, unsigned int handle, unsigned int stride)
+ecore_drm2_fb_gbm_create(int fd, int width, int height, int depth, int bpp, unsigned int format, unsigned int handle, unsigned int stride, void *bo)
{
struct drm_mode_map_dumb marg;
Ecore_Drm2_Fb *fb;
if (!fb) return NULL;
fb->gbm = EINA_TRUE;
+ fb->gbm_bo = bo;
fb->fd = fd;
fb->w = width;
{
fb->busy = busy;
}
+
+EAPI void *
+ecore_drm2_fb_bo_get(Ecore_Drm2_Fb *f)
+{
+ return f->gbm_bo;
+}
fb =
ecore_drm2_fb_gbm_create(ob->fd, w, h, ob->depth, ob->bpp,
- format, hdl, stride);
+ format, hdl, stride, bo);
if (!fb)
{
ERR("Failed to create FBO");