#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
+#include <sys/time.h>
#include <unistd.h>
#include <linux/fb.h>
return false;
}
+ fb_vblank vblank;
+ if(ioctl(dev_fd, FBIOGET_VBLANK, &vblank) == -1) {
+ fprintf(stderr, "FBIOGET_VBLANK error: %s\n", strerror(errno));
+ }
+ else {
+ printf("flags: %x\n", vblank.flags);
+ printf("count: %d\n", vblank.count);
+ printf("beam position: %d, %d\n", vblank.hcount, vblank.vcount);
+ }
+
return true;
}
{
}
+void wait_vsync()
+{
+ unsigned long arg = 0;
+
+ timeval tvstart, tvend;
+ gettimeofday(&tvstart, 0);
+
+ if(ioctl(dev_fd, FBIO_WAITFORVSYNC, &arg) == -1) {
+ printf("ioctl error %s\n", strerror(errno));
+ }
+
+ gettimeofday(&tvend, 0);
+ printf("%ld %ld\n", tvend.tv_sec - tvstart.tv_sec, tvend.tv_usec - tvstart.tv_usec);
+}
+
#endif // WINNIE_FBDEV