Fix flipped sign to strerror.
[mesa.git] / src / mesa / drivers / dri / common / utils.c
index 7703cb61fe6a555d69e677c727d90d9ce3fcb6dc..6a189e728582ba3876c9807bcc72465a7f5665c5 100644 (file)
@@ -309,15 +309,17 @@ void driInitSingleExtension( GLcontext * ctx,
            /* Add each entry-point to the dispatch table.
             */
            offset = _glapi_add_dispatch( functions, parameter_signature );
-           if ( ext->functions[i].remap_index != -1 ) {
-               driDispatchRemapTable[ ext->functions[i].remap_index ] = offset;
+           if (offset == -1) {
+               fprintf(stderr, "DISPATCH ERROR! _glapi_add_dispatch failed "
+                       "to add %s!\n", functions[0]);
            }
-
-           if ( (ext->functions[i].offset != -1)
-                && (ext->functions[i].offset != offset) ) {
-               fprintf(stderr, "DISPATCH ERROR! %s -> %u != %u\n", functions[0],
-                       driDispatchRemapTable[ ext->functions[i].remap_index ],
-                       ext->functions[i].offset);
+           else if (ext->functions[i].remap_index != -1) {
+               driDispatchRemapTable[ ext->functions[i].remap_index ] = 
+                 offset;
+           }
+           else if (ext->functions[i].offset != offset) {
+               fprintf(stderr, "DISPATCH ERROR! %s -> %u != %u\n",
+                       functions[0], offset, ext->functions[i].offset);
            }
        }
     }
@@ -376,9 +378,10 @@ driCheckDriDdxDrmVersions3(const char * driver_name,
    }
 
    /* Check that the DDX driver version is compatible */
-   if ( (ddxActual->major < ddxExpected->major_min)
+   /* for miniglx we pass in -1 so we can ignore the DDX version */
+   if ( (ddxActual->major != -1) && ((ddxActual->major < ddxExpected->major_min)
        || (ddxActual->major > ddxExpected->major_max)
-       || (ddxActual->minor < ddxExpected->minor) ) {
+       || (ddxActual->minor < ddxExpected->minor)) ) {
       fprintf(stderr, format2, driver_name, "DDX",
                       ddxExpected->major_min, ddxExpected->major_max, ddxExpected->minor,
                       ddxActual->major, ddxActual->minor, ddxActual->patch);
@@ -418,6 +421,19 @@ driCheckDriDdxDrmVersions2(const char * driver_name,
 
 
 
+GLint
+driIntersectArea( drm_clip_rect_t rect1, drm_clip_rect_t rect2 )
+{
+   if (rect2.x1 > rect1.x1) rect1.x1 = rect2.x1;
+   if (rect2.x2 < rect1.x2) rect1.x2 = rect2.x2;
+   if (rect2.y1 > rect1.y1) rect1.y1 = rect2.y1;
+   if (rect2.y2 < rect1.y2) rect1.y2 = rect2.y2;
+
+   if (rect1.x1 > rect1.x2 || rect1.y1 > rect1.y2) return 0;
+
+   return (rect1.x2 - rect1.x1) * (rect1.y2 - rect1.y1);
+}
+
 GLboolean driClipRectToFramebuffer( const GLframebuffer *buffer,
                                    GLint *x, GLint *y,
                                    GLsizei *width, GLsizei *height )