diff -c -r wine/dlls/wined3d/directx.c wine2/dlls/wined3d/directx.c
*** wine/dlls/wined3d/directx.c	Mon Aug 29 14:20:02 2005
--- wine2/dlls/wined3d/directx.c	Fri Sep  2 19:39:55 2005
***************
*** 993,998 ****
--- 993,1001 ----
    case WINED3DFMT_A8R8G8B8:
      if (8 == rb && 8 == gb && 8 == bb && 8 == ab) return TRUE;
      break;
+   case WINED3DFMT_A2R10G10B10:
+     if (10 == rb && 10 == gb && 10 == bb && 2 == ab) return TRUE;
+     break;
    case WINED3DFMT_X1R5G5B5:
      if (5 == rb && 5 == gb && 5 == bb) return TRUE;
      break;
***************
*** 1039,1044 ****
--- 1042,1050 ----
    case WINED3DFMT_D24S8:
      if (24 == db && 8 == sb) return TRUE;
      break;
+   case WINED3DFMT_D24FS8:
+     if (24 == db && 8 == sb) return TRUE;
+     break;
    case WINED3DFMT_D24X8:
      if (24 == db) return TRUE;
      break;
diff -c -r wine/dlls/wined3d/surface.c wine2/dlls/wined3d/surface.c
*** wine/dlls/wined3d/surface.c	Mon Aug 29 14:20:02 2005
--- wine2/dlls/wined3d/surface.c	Sat Sep  3 23:25:45 2005
***************
*** 724,729 ****
--- 724,740 ----
                      vcheckGLcall("glPixelStorei");
                  }
                  break;
+             case WINED3DFMT_A2R10G10B10:
+                 {
+                     glPixelStorei(GL_PACK_SWAP_BYTES, TRUE);
+                     vcheckGLcall("glPixelStorei");
+                     glDrawPixels(This->lockedRect.right - This->lockedRect.left, (This->lockedRect.bottom - This->lockedRect.top)-1,
+                                  GL_BGRA, GL_UNSIGNED_INT_2_10_10_10_REV, This->resource.allocatedMemory);
+                     vcheckGLcall("glDrawPixels");
+                     glPixelStorei(GL_PACK_SWAP_BYTES, prev_store);
+                     vcheckGLcall("glPixelStorei");
+                 }
+                 break;
              default:
                  FIXME("Unsupported Format %u in locking func\n", This->resource.format);
              }
diff -c -r wine/dlls/wined3d/utils.c wine2/dlls/wined3d/utils.c
*** wine/dlls/wined3d/utils.c	Mon Aug 29 14:20:02 2005
--- wine2/dlls/wined3d/utils.c	Sun Sep  4 00:36:31 2005
***************
*** 73,78 ****
--- 73,79 ----
      FMT_TO_STR(WINED3DFMT_D32);
      FMT_TO_STR(WINED3DFMT_D15S1);
      FMT_TO_STR(WINED3DFMT_D24S8);
+     FMT_TO_STR(WINED3DFMT_D24FS8);
      FMT_TO_STR(WINED3DFMT_D24X8);
      FMT_TO_STR(WINED3DFMT_D24X4S4);
      FMT_TO_STR(WINED3DFMT_D16);
***************
*** 1610,1621 ****
--- 1611,1624 ----
          case WINED3DFMT_A4R4G4B4:         retVal = GL_RGBA4; break;
          case WINED3DFMT_X4R4G4B4:         retVal = GL_RGB4; break;
          case WINED3DFMT_A8R8G8B8:         retVal = GL_RGBA8; break;
+         case WINED3DFMT_A2R10G10B10:      retVal = GL_RGBA8; break;
          case WINED3DFMT_X8R8G8B8:         retVal = GL_RGB; break;
              /* to see */
          case WINED3DFMT_A8:               retVal = GL_ALPHA8; break;
  
          /* Depth + Stencil NOTE: OpenGL doesn't support depth-stencil surfaces so the formats are the closes bits match for the data */
          case WINED3DFMT_D24S8:            retVal = GL_COLOR_INDEX; break;
+         case WINED3DFMT_D24FS8:           retVal = GL_COLOR_INDEX; break;
          case WINED3DFMT_D24X8:            retVal = GL_COLOR_INDEX; break;
          case WINED3DFMT_D24X4S4:          retVal = GL_COLOR_INDEX; break;
          case WINED3DFMT_D32:              retVal = GL_COLOR_INDEX; break;
***************
*** 1673,1683 ****
--- 1676,1688 ----
          case WINED3DFMT_A4R4G4B4:         retVal = GL_BGRA; break;
          case WINED3DFMT_X4R4G4B4:         retVal = GL_BGRA; break;
          case WINED3DFMT_A8R8G8B8:         retVal = GL_BGRA; break;
+         case WINED3DFMT_A2R10G10B10:      retVal = GL_BGRA; break;
          case WINED3DFMT_X8R8G8B8:         retVal = GL_BGRA; break;
              /* to see */
          case WINED3DFMT_A8:               retVal = GL_ALPHA; break;
              /* Depth + Stencil */
          case WINED3DFMT_D24S8:            retVal = GL_COLOR_INDEX; break;
+         case WINED3DFMT_D24FS8:           retVal = GL_COLOR_INDEX; break;
          case WINED3DFMT_D24X8:            retVal = GL_COLOR_INDEX; break;
          case WINED3DFMT_D24X4S4:          retVal = GL_COLOR_INDEX; break;
          case WINED3DFMT_D32:              retVal = GL_COLOR_INDEX; break;
***************
*** 1733,1743 ****
--- 1738,1750 ----
          case WINED3DFMT_A4R4G4B4:         retVal = GL_UNSIGNED_SHORT_4_4_4_4_REV; break;
          case WINED3DFMT_X4R4G4B4:         retVal = GL_UNSIGNED_SHORT_4_4_4_4_REV; break;
          case WINED3DFMT_A8R8G8B8:         retVal = GL_UNSIGNED_INT_8_8_8_8_REV; break;
+         case WINED3DFMT_A2R10G10B10:      retVal = GL_UNSIGNED_INT_2_10_10_10_REV; break;
          case WINED3DFMT_X8R8G8B8:         retVal = GL_UNSIGNED_INT_8_8_8_8_REV; break;
              /* to see */
          case WINED3DFMT_A8:               retVal = GL_ALPHA; break;
              /* Depth + Stencil */
          case WINED3DFMT_D24S8:            retVal = GL_UNSIGNED_INT; break;
+         case WINED3DFMT_D24FS8:           retVal = GL_UNSIGNED_INT; break;
          case WINED3DFMT_D24X8:            retVal = GL_UNSIGNED_INT; break;
          case WINED3DFMT_D24X4S4:          retVal = GL_UNSIGNED_INT; break;
          case WINED3DFMT_D32:              retVal = GL_UNSIGNED_INT; break;
***************
*** 1774,1779 ****
--- 1781,1787 ----
      case WINED3DFMT_A4R4G4B4:         retVal = 2; break;
      case WINED3DFMT_X4R4G4B4:         retVal = 2; break;
      case WINED3DFMT_A8R8G8B8:         retVal = 4; break;
+     case WINED3DFMT_A2R10G10B10:      retVal = 4; break;
      case WINED3DFMT_X8R8G8B8:         retVal = 4; break;
          /* Paletted */
      case WINED3DFMT_P8:               retVal = 1; break;
***************
*** 1785,1790 ****
--- 1793,1799 ----
      case WINED3DFMT_D15S1:            retVal = 2; break;
      case WINED3DFMT_D24X4S4:          retVal = 4; break;
      case WINED3DFMT_D24S8:            retVal = 4; break;
+     case WINED3DFMT_D24FS8:           retVal = 4; break;
      case WINED3DFMT_D24X8:            retVal = 4; break;
          /* Luminance */
      case WINED3DFMT_L8:               retVal = 1; break;
***************
*** 1874,1879 ****
--- 1883,1895 ----
          PUSH2(GLX_BLUE_SIZE,    8);
          break;
  
+     case WINED3DFMT_A2R10G10B10:
+         PUSH2(GLX_ALPHA_SIZE,   2);
+         PUSH2(GLX_RED_SIZE,    10);
+         PUSH2(GLX_GREEN_SIZE,  10);
+         PUSH2(GLX_BLUE_SIZE,   10);
+         break;
+ 
      default:
          break;
      }
***************
*** 1905,1910 ****
--- 1921,1931 ----
          PUSH2(GLX_STENCIL_SIZE, 8);
          break;
  
+     case WINED3DFMT_D24FS8:
+         PUSH2(GLX_DEPTH_SIZE,   24);
+         PUSH2(GLX_STENCIL_SIZE, 8);
+         break;
+ 
      case WINED3DFMT_D32:
          PUSH2(GLX_DEPTH_SIZE,   32);
          break;
***************
*** 1941,1946 ****
--- 1962,1972 ----
              PUSH2(GLX_STENCIL_SIZE, 1);
              break;
  
+         case WINED3DFMT_D24FS8:
+             PUSH2(GLX_DEPTH_SIZE,   1);
+             PUSH2(GLX_STENCIL_SIZE, 1);
+             break;
+ 
          case WINED3DFMT_D32:
              PUSH2(GLX_DEPTH_SIZE,   1);
              break;
