This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch devs/devilhorns/apos
in repository efl.

View the commit online.

commit 8754eb97efaf25f6579528ff500fe43ffcd557be
Author: Christopher Michael <devilho...@comcast.net>
AuthorDate: Wed Oct 9 11:57:46 2024 -0400

    ecore_drm2: Add API function to mark a frambuffer as dirty
---
 src/lib/ecore_drm2/Ecore_Drm2.h    |  1 +
 src/lib/ecore_drm2/ecore_drm2_fb.c | 26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h
index e6fa0f7d48..aab4b9367a 100644
--- a/src/lib/ecore_drm2/Ecore_Drm2.h
+++ b/src/lib/ecore_drm2/Ecore_Drm2.h
@@ -126,6 +126,7 @@ EAPI Eina_Bool ecore_drm2_display_blanktime_get(Ecore_Drm2_Display *disp, int se
 
 /* Framebuffer API functions */
 EAPI Ecore_Drm2_Fb *ecore_drm2_fb_create(Ecore_Drm2_Device *dev, int width, int height, int depth, int bpp, unsigned int format);
+EAPI void ecore_drm2_fb_dirty(Ecore_Drm2_Fb *fb, Eina_Rectangle *rects, unsigned int count);
 
 # endif
 
diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c
index 13811dbcda..4712081bf1 100644
--- a/src/lib/ecore_drm2/ecore_drm2_fb.c
+++ b/src/lib/ecore_drm2/ecore_drm2_fb.c
@@ -99,3 +99,29 @@ err:
    free(fb);
    return NULL;
 }
+
+EAPI void
+ecore_drm2_fb_dirty(Ecore_Drm2_Fb *fb, Eina_Rectangle *rects, unsigned int count)
+{
+   EINA_SAFETY_ON_NULL_RETURN(fb);
+   EINA_SAFETY_ON_NULL_RETURN(rects);
+
+#ifdef DRM_MODE_FEATURE_DIRTYFB
+   drmModeClip *clip;
+   unsigned int i = 0;
+   int ret;
+
+   clip = alloca(count * sizeof(drmModeClip));
+   for (i = 0; i < count; i++)
+     {
+	clip[i].x1 = rects[i].x;
+	clip[i].y1 = rects[i].y;
+	clip[i].x2 = rects[i].w;
+	clip[i].y2 = rects[i].h;
+     }
+
+   ret = sym_drmModeDirtyFB(fb->fd, fb->id, clip, count);
+   if ((ret) && (ret == -EINVAL))
+     WRN("Could not mark framebuffer as dirty: %m");
+#endif
+}

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to