freedreno/a4xx: frag-depth fixes
[mesa.git] / src / gallium / targets / libgl-gdi / libgl_gdi.c
index 1d6e664eabd6557c3b3d49566bae5f6ef07f5a49..a2fb161c682dbf29b8cbc447b079ba13c54a651e 100644 (file)
@@ -78,6 +78,8 @@ gdi_screen_create(void)
    if (strcmp(driver, "llvmpipe") == 0) {
       screen = llvmpipe_create_screen( winsys );
    }
+#else
+   (void) driver;
 #endif
 
    if (screen == NULL) {
@@ -100,7 +102,7 @@ no_winsys:
 
 static void
 gdi_present(struct pipe_screen *screen,
-            struct pipe_surface *surface,
+            struct pipe_resource *res,
             HDC hDC)
 {
    /* This will fail if any interposing layer (trace, debug, etc) has
@@ -119,14 +121,14 @@ gdi_present(struct pipe_screen *screen,
 #ifdef HAVE_LLVMPIPE
    if (use_llvmpipe) {
       winsys = llvmpipe_screen(screen)->winsys;
-      dt = llvmpipe_resource(surface->texture)->dt;
+      dt = llvmpipe_resource(res)->dt;
       gdi_sw_display(winsys, dt, hDC);
       return;
    }
 #endif
 
    winsys = softpipe_screen(screen)->winsys,
-   dt = softpipe_resource(surface->texture)->dt,
+   dt = softpipe_resource(res)->dt,
    gdi_sw_display(winsys, dt, hDC);
 }
 
@@ -159,8 +161,10 @@ DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
       break;
 
    case DLL_PROCESS_DETACH:
-      stw_cleanup_thread();
-      stw_cleanup();
+      if (lpReserved == NULL) {
+         stw_cleanup_thread();
+         stw_cleanup();
+      }
       break;
    }
    return TRUE;