Drop GLcontext typedef and use struct gl_context instead
[mesa.git] / src / mesa / drivers / dri / common / vblank.h
index 3dc965def1a790c22cea7bd6b1fc7e4bd46a4c6d..067fb5ed8d6960325759d40e66f9ee385a7b4414 100644 (file)
  * Authors:
  *    Ian Romanick <idr@us.ibm.com>
  */
-/* $XFree86:$ */
 
 #ifndef DRI_VBLANK_H
 #define DRI_VBLANK_H
 
-#include "context.h"
+#include "main/context.h"
 #include "dri_util.h"
 #include "xmlconfig.h"
 
                                          */
 #define VBLANK_FLAG_NO_IRQ    (1U << 7)  /* DRM has no IRQ to wait on.
                                          */
+#define VBLANK_FLAG_SECONDARY (1U << 8)  /* Wait for secondary vblank.
+                                         */
 
-extern int driGetMSC32( __DRIscreenPrivate * priv, int64_t * count );
-extern int driWaitForMSC32( __DRIdrawablePrivate *priv,
+extern int driGetMSC32( __DRIscreen * priv, int64_t * count );
+extern int driDrawableGetMSC32( __DRIscreen * priv,
+                               __DRIdrawable * drawablePrivate,
+                               int64_t * count);
+extern int driWaitForMSC32( __DRIdrawable *priv,
     int64_t target_msc, int64_t divisor, int64_t remainder, int64_t * msc );
 extern GLuint driGetDefaultVBlankFlags( const driOptionCache *optionCache );
-extern void driDrawableInitVBlank ( __DRIdrawablePrivate *priv, GLuint flags );
-extern int driWaitForVBlank( const __DRIdrawablePrivate *priv,
-    GLuint * vbl_seq, GLuint flags, GLboolean * missed_deadline );
+extern void driDrawableInitVBlank ( __DRIdrawable *priv );
+extern unsigned driGetVBlankInterval( const  __DRIdrawable *priv );
+extern void driGetCurrentVBlank( __DRIdrawable *priv );
+extern int driWaitForVBlank( __DRIdrawable *priv,
+                            GLboolean * missed_deadline );
 
 #undef usleep
 #include <unistd.h>  /* for usleep() */
 #include <sched.h>   /* for sched_yield() */
 
-#ifdef linux
-#include <sched.h>   /* for sched_yield() */
-#endif
-
 #define DO_USLEEP(nr)                                                  \
    do {                                                                        \
       if (0) fprintf(stderr, "%s: usleep for %u\n", __FUNCTION__, nr );        \