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.