Add helper function that returns the current vblank sequence of a drawable.
authorMichel Dänzer <michel@daenzer.net>
Thu, 28 Sep 2006 14:09:20 +0000 (14:09 +0000)
committerMichel Dänzer <michel@daenzer.net>
Thu, 28 Sep 2006 14:09:20 +0000 (14:09 +0000)
src/mesa/drivers/dri/common/vblank.c
src/mesa/drivers/dri/common/vblank.h

index 9c219ea..e7ed545 100644 (file)
@@ -292,6 +292,27 @@ driGetVBlankInterval( const  __DRIdrawablePrivate *priv, GLuint flags )
 
 /****************************************************************************/
 /**
+ * Returns the current vertical blank sequence number of the given drawable.
+ */
+
+void
+driGetCurrentVBlank( const  __DRIdrawablePrivate *priv, GLuint flags,
+                    GLuint *vbl_seq )
+{
+   drmVBlank vbl;
+
+   vbl.request.type = DRM_VBLANK_RELATIVE;
+   if ( flags & VBLANK_FLAG_SECONDARY ) {
+      vbl.request.type |= DRM_VBLANK_SECONDARY;
+   }
+   vbl.request.sequence = 0;
+
+   (void) do_wait( &vbl, vbl_seq, priv->driScreenPriv->fd );
+}
+
+
+/****************************************************************************/
+/**
  * Waits for the vertical blank for use with glXSwapBuffers.
  * 
  * \param vbl_seq  Vertical blank sequence number (MSC) after the last buffer
index 00f0e75..ec83adc 100644 (file)
@@ -53,6 +53,8 @@ extern void driDrawableInitVBlank ( __DRIdrawablePrivate *priv, GLuint flags,
                                    GLuint *vbl_seq );
 extern unsigned driGetVBlankInterval( const  __DRIdrawablePrivate *priv,
                                      GLuint flags );
+extern void driGetCurrentVBlank( const  __DRIdrawablePrivate *priv,
+                                GLuint flags, GLuint *vbl_seq );
 extern int driWaitForVBlank( const __DRIdrawablePrivate *priv,
     GLuint * vbl_seq, GLuint flags, GLboolean * missed_deadline );