summaryrefslogtreecommitdiff
path: root/cogl/winsys/cogl-winsys-egl-kms.c
diff options
context:
space:
mode:
Diffstat (limited to 'cogl/winsys/cogl-winsys-egl-kms.c')
-rw-r--r--cogl/winsys/cogl-winsys-egl-kms.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/cogl/winsys/cogl-winsys-egl-kms.c b/cogl/winsys/cogl-winsys-egl-kms.c
index 5072d8e7..c70f5c13 100644
--- a/cogl/winsys/cogl-winsys-egl-kms.c
+++ b/cogl/winsys/cogl-winsys-egl-kms.c
@@ -582,7 +582,7 @@ flip_all_crtcs (CoglDisplay *display, CoglFlipKMS *flip, int fb_id)
CoglKmsCrtc *crtc = l->data;
int ret;
- if (crtc->count == 0)
+ if (crtc->count == 0 || crtc->ignore)
continue;
ret = drmModePageFlip (kms_renderer->fd,
@@ -1232,3 +1232,24 @@ cogl_kms_display_set_layout (CoglDisplay *display,
return TRUE;
}
+
+
+void
+cogl_kms_display_set_ignore_crtc (CoglDisplay *display,
+ uint32_t id,
+ CoglBool ignore)
+{
+ CoglDisplayEGL *egl_display = display->winsys;
+ CoglDisplayKMS *kms_display = egl_display->platform;
+ GList *l;
+
+ for (l = kms_display->crtcs; l; l = l->next)
+ {
+ CoglKmsCrtc *crtc = l->data;
+ if (crtc->id == id)
+ {
+ crtc->ignore = ignore;
+ break;
+ }
+ }
+}