Raphael Junqueira : wined3d: Added support for WINED3DFMT_X4R4G4B4.

Alexandre Julliard julliard at wine.codeweavers.com
Sat Dec 31 08:20:32 CST 2005


Module: wine
Branch: refs/heads/master
Commit: ee5d72b136fa4fa0ba2d52a6df63e6581a7b63ee
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=ee5d72b136fa4fa0ba2d52a6df63e6581a7b63ee

Author: Raphael Junqueira <fenix at club-internet.fr>
Date:   Sat Dec 31 13:13:34 2005 +0100

wined3d: Added support for WINED3DFMT_X4R4G4B4.

---

 dlls/wined3d/directx.c |    3 +++
 dlls/wined3d/surface.c |   19 +++++++++++++++++++
 2 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index a0ae182..b9178a1 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1073,6 +1073,9 @@ static BOOL IWineD3DImpl_IsGLXFBConfigCo
   case WINED3DFMT_A1R5G5B5:
     if (5 == rb && 5 == gb && 5 == bb && 1 == ab) return TRUE;
     break;
+  case WINED3DFMT_X4R4G4B4:
+    if (16 == buf_sz && 4 == rb && 4 == gb && 4 == bb) return TRUE;
+    break;
   case WINED3DFMT_R5G6B5:
     if (5 == rb && 6 == gb && 5 == bb) return TRUE;
     break;
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index e1711e6..793f4e1 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -752,6 +752,25 @@ HRESULT WINAPI IWineD3DSurfaceImpl_Unloc
             glRasterPos3i(This->lockedRect.left, This->lockedRect.top, 1);
             vcheckGLcall("glRasterPos2f");
             switch (This->resource.format) {
+	    case WINED3DFMT_X4R4G4B4:
+	        {
+		    int size;
+                    unsigned short *data;
+                    data = (unsigned short *)This->resource.allocatedMemory;
+                    size = (This->lockedRect.bottom - This->lockedRect.top) * (This->lockedRect.right - This->lockedRect.left);
+                    while(size > 0) {
+                            *data |= 0xF000;
+                            data++;
+                            size--;
+                    }
+		}
+	    case WINED3DFMT_A4R4G4B4:
+	        {
+                    glDrawPixels(This->lockedRect.right - This->lockedRect.left, (This->lockedRect.bottom - This->lockedRect.top)-1,
+                                 GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4_REV, This->resource.allocatedMemory);
+                    vcheckGLcall("glDrawPixels");
+	        }
+		break;
             case WINED3DFMT_R5G6B5:
                 {
                     glDrawPixels(This->lockedRect.right - This->lockedRect.left, (This->lockedRect.bottom - This->lockedRect.top)-1,




More information about the wine-cvs mailing list