DDSURFACEDESC 结构是在 Ddraw.h 头文件中定义的,用于描述 DirectDraw 表面(surface)的属性。这个结构在 DirectDraw 应用程序中经常用于创建和操作表面。

以下是 DDSURFACEDESC 结构的典型声明:
typedef struct _DDSURFACEDESC {
  DWORD       dwSize;
  DWORD       dwFlags;
  DWORD       dwHeight;
  DWORD       dwWidth;
  union {
    LONG      lPitch;
    DWORD     dwLinearSize;
  };
  DWORD       dwBackBufferCount;
  union {
    DWORD   dwMipMapCount;
    DWORD   dwZBufferBitDepth;
    DWORD   dwRefreshRate;
  };
  DWORD       dwAlphaBitDepth;
  DWORD       dwReserved;
  LPVOID      lpSurface;
  DDCOLORKEY  ddckCKDestOverlay;
  DDCOLORKEY  ddckCKDestBlt;
  DDCOLORKEY  ddckCKSrcOverlay;
  DDCOLORKEY  ddckCKSrcBlt;
  DDPIXELFORMAT ddpfPixelFormat;
  DDSCAPS     ddsCaps;
} DDSURFACEDESC, *LPDDSURFACEDESC;

  •  dwSize: 结构的大小,以字节为单位。


  •  dwFlags: 描述表面的一些特性的标志。例如,DDSD_CAPS 表示 ddsCaps 字段有效,DDSD_HEIGHT 表示 dwHeight 字段有效,以此类推。


  •  dwHeight: 表面的高度。


  •  dwWidth: 表面的宽度。


  •  lPitch: 表面的行距,即每行像素之间的字节数。


  •  dwLinearSize: 线性尺寸,用于指定在线性内存中表面的总大小。


  •  dwBackBufferCount: 后备缓冲区的数量,用于双缓冲等情况。


  •  dwMipMapCount: MipMap 层级的数量。


  •  dwZBufferBitDepth: 深度缓冲区的位深度。


  •  dwRefreshRate: 刷新率。


  •  dwAlphaBitDepth: Alpha 通道的位深度。


  •  dwReserved: 保留字段。


  •  lpSurface: 指向表面的内存地址。


  •  ddckCKDestOverlay, ddckCKDestBlt, ddckCKSrcOverlay, ddckCKSrcBlt: DDCOLORKEY 结构,用于透明色处理。


  •  ddpfPixelFormat: DDPIXELFORMAT 结构,描述表面的像素格式。


  •  ddsCaps: DDSCAPS 结构,描述表面的一些能力和属性,如表面类型、使用途径等。


这个结构在创建和操作 DirectDraw 表面时经常使用,开发人员可以根据应用程序的需求设置结构的字段。请注意,这是 DDSURFACEDESC 结构的较早版本,较新的应用程序可能会使用 DDSURFACEDESC2 结构。


转载请注明出处:http://www.zyzy.cn/article/detail/26521/Win32 API/Ddraw.h/DDSURFACEDESC