summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 70d2b36)
raw | patch | inline | side by side (parent: 70d2b36)
author | Karthik Ramanan <a0393906@ti.com> | |
Tue, 8 Apr 2014 14:58:31 +0000 (20:28 +0530) | ||
committer | Karthik Ramanan <a0393906@ti.com> | |
Sat, 12 Apr 2014 08:25:40 +0000 (13:55 +0530) |
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
kmscube.c | patch | blob | history |
diff --git a/kmscube.c b/kmscube.c
index bc2e89d19a772f623431b0fd832416db7f90e69e..5a18c322ad2dc5818c2825e779f8915105a525d8 100644 (file)
--- a/kmscube.c
+++ b/kmscube.c
printf("\t-h : Help\n");
printf("\t-a : Enable all displays\n");
printf("\t-c <id> : Display using connector_id [if not specified, use the first connected connector]\n");
+ printf("\t-n <number> (optional): Number of frames to render\n");
}
int kms_signalhandler(int signum)
{
switch(signum) {
case SIGINT:
- case SIGTERM:
- printf("Handling signal number = %d\n", signum);
+ case SIGTERM:
+ /* Allow the pending page flip requests to be completed before
+ * the teardown sequence */
+ sleep(1);
+ printf("Handling signal number = %d\n", signum);
cleanup_kmscube();
break;
default:
uint32_t i = 0;
int ret;
int opt;
+ int frame_count = -1;
signal(SIGINT, kms_signalhandler);
signal(SIGTERM, kms_signalhandler);
- while ((opt = getopt(argc, argv, "ahc:")) != -1) {
+ while ((opt = getopt(argc, argv, "ahc:n:")) != -1) {
switch(opt) {
case 'a':
all_display = 1;
case 'c':
connector_id = atoi(optarg);
break;
+ case 'n':
+ frame_count = atoi(optarg);
+ break;
+
default:
printf("Undefined option %s\n", argv[optind]);
}
}
- while (1) {
+ while (frame_count != 0) {
struct gbm_bo *next_bo;
int waiting_for_flip = 1;
/* release last buffer to render on again: */
gbm_surface_release_buffer(gbm.surface, bo);
bo = next_bo;
+
+ if(frame_count >= 0)
+ frame_count--;
}
cleanup_kmscube();