Browse Source

Image.cpp no longer relies on ddraw.h.

Lasse Öörni 14 years ago
parent
commit
9f712d922d
1 changed files with 131 additions and 1 deletions
  1. 131 1
      Engine/Resource/Image.cpp

+ 131 - 1
Engine/Resource/Image.cpp

@@ -29,12 +29,142 @@
 #include "Log.h"
 
 #include <cstring>
-#include <ddraw.h>
 #include <stb_image.h>
 #include <stb_image_write.h>
 
 #include "DebugNew.h"
 
+#ifndef DUMMYUNIONNAMEN
+#if defined(__cplusplus) || !defined(NONAMELESSUNION)
+#define DUMMYUNIONNAMEN(n)
+#else
+#define DUMMYUNIONNAMEN(n) u##n
+#endif
+#endif
+
+#ifndef MAKEFOURCC
+#define MAKEFOURCC(ch0, ch1, ch2, ch3) ((unsigned)(ch0) | ((unsigned)(ch1) << 8) | ((unsigned)(ch2) << 16) | ((unsigned)(ch3) << 24))
+#endif
+
+#define FOURCC_DXT1 (MAKEFOURCC('D','X','T','1'))
+#define FOURCC_DXT2 (MAKEFOURCC('D','X','T','2'))
+#define FOURCC_DXT3 (MAKEFOURCC('D','X','T','3'))
+#define FOURCC_DXT4 (MAKEFOURCC('D','X','T','4'))
+#define FOURCC_DXT5 (MAKEFOURCC('D','X','T','5'))
+
+typedef struct _DDCOLORKEY
+{
+    unsigned dwColorSpaceLowValue;
+    unsigned dwColorSpaceHighValue;
+} DDCOLORKEY;
+
+typedef struct _DDPIXELFORMAT
+{
+    unsigned dwSize;
+    unsigned dwFlags;
+    unsigned dwFourCC;
+    union
+    {
+        unsigned dwRGBBitCount;
+        unsigned dwYUVBitCount;
+        unsigned dwZBufferBitDepth;
+        unsigned dwAlphaBitDepth;
+        unsigned dwLuminanceBitCount;
+        unsigned dwBumpBitCount;
+        unsigned dwPrivateFormatBitCount;
+    } DUMMYUNIONNAMEN(1);
+    union
+    {
+        unsigned dwRBitMask;
+        unsigned dwYBitMask;
+        unsigned dwStencilBitDepth;
+        unsigned dwLuminanceBitMask;
+        unsigned dwBumpDuBitMask;
+        unsigned dwOperations;
+    } DUMMYUNIONNAMEN(2);
+    union
+    {
+        unsigned dwGBitMask;
+        unsigned dwUBitMask;
+        unsigned dwZBitMask;
+        unsigned dwBumpDvBitMask;
+        struct
+        {
+            unsigned short wFlipMSTypes;
+            unsigned short wBltMSTypes;
+        } MultiSampleCaps;
+    } DUMMYUNIONNAMEN(3);
+    union
+    {
+        unsigned dwBBitMask;
+        unsigned dwVBitMask;
+        unsigned dwStencilBitMask;
+        unsigned dwBumpLuminanceBitMask;
+    } DUMMYUNIONNAMEN(4);
+    union
+    {
+        unsigned dwRGBAlphaBitMask;
+        unsigned dwYUVAlphaBitMask;
+        unsigned dwLuminanceAlphaBitMask;
+        unsigned dwRGBZBitMask;
+        unsigned dwYUVZBitMask;
+    } DUMMYUNIONNAMEN(5);
+} DDPIXELFORMAT;
+
+typedef struct _DDSCAPS2
+{
+    unsigned dwCaps;
+    unsigned dwCaps2;
+    unsigned dwCaps3;
+    union
+    {
+        unsigned dwCaps4;
+        unsigned dwVolumeDepth;
+    } DUMMYUNIONNAMEN(1);
+} DDSCAPS2;
+
+typedef struct _DDSURFACEDESC2
+{
+    unsigned dwSize;
+    unsigned dwFlags;
+    unsigned dwHeight;
+    unsigned dwWidth;
+    union
+    {
+        long lPitch;
+        unsigned dwLinearSize;
+    } DUMMYUNIONNAMEN(1);
+    union
+    {
+        unsigned dwBackBufferCount;
+        unsigned dwDepth;
+    } DUMMYUNIONNAMEN(5);
+    union
+    {
+        unsigned dwMipMapCount;
+        unsigned dwRefreshRate;
+        unsigned dwSrcVBHandle;
+    } DUMMYUNIONNAMEN(2);
+    unsigned dwAlphaBitDepth;
+    unsigned dwReserved;
+    void* lpSurface;
+    union
+    {
+        DDCOLORKEY ddckCKDestOverlay;
+        unsigned dwEmptyFaceColor;
+    } DUMMYUNIONNAMEN(3);
+    DDCOLORKEY ddckCKDestBlt;
+    DDCOLORKEY ddckCKSrcOverlay;
+    DDCOLORKEY ddckCKSrcBlt;
+    union
+    {
+        DDPIXELFORMAT ddpfPixelFormat;
+        unsigned dwFVF;
+    } DUMMYUNIONNAMEN(4);
+    DDSCAPS2 ddsCaps;
+    unsigned dwTextureStage;
+} DDSURFACEDESC2;
+
 OBJECTTYPESTATIC(Image);
 
 Image::Image(Context* context) :