/// <summary> /// Create a DDS file from a D3DTX /// </summary> /// <param name="d3dtx"></param> public DDS_Master(D3DTX_Master d3dtx) { header = DDS_Functions.GetPresetHeader(); T3SurfaceFormat surfaceFormat = T3SurfaceFormat.eSurface_DXT1; if (d3dtx.d3dtx4 != null) { header.dwWidth = d3dtx.d3dtx4.mWidth; header.dwHeight = d3dtx.d3dtx4.mHeight; header.dwMipMapCount = d3dtx.d3dtx4.mNumMipLevels; surfaceFormat = d3dtx.d3dtx4.mSurfaceFormat; } else if (d3dtx.d3dtx5 != null) { header.dwWidth = d3dtx.d3dtx5.mWidth; header.dwHeight = d3dtx.d3dtx5.mHeight; header.dwMipMapCount = d3dtx.d3dtx5.mNumMipLevels; surfaceFormat = d3dtx.d3dtx5.mSurfaceFormat; } else if (d3dtx.d3dtx6 != null) { header.dwWidth = d3dtx.d3dtx6.mWidth; header.dwHeight = d3dtx.d3dtx6.mHeight; header.dwMipMapCount = d3dtx.d3dtx6.mNumMipLevels; surfaceFormat = d3dtx.d3dtx6.mSurfaceFormat; } else if (d3dtx.d3dtx7 != null) { header.dwWidth = d3dtx.d3dtx7.mWidth; header.dwHeight = d3dtx.d3dtx7.mHeight; header.dwMipMapCount = d3dtx.d3dtx7.mNumMipLevels; //header.dwDepth = d3dtx.d3dtx7.mDepth; surfaceFormat = d3dtx.d3dtx7.mSurfaceFormat; } else if (d3dtx.d3dtx8 != null) { header.dwWidth = d3dtx.d3dtx8.mWidth; header.dwHeight = d3dtx.d3dtx8.mHeight; header.dwMipMapCount = d3dtx.d3dtx8.mNumMipLevels; header.dwDepth = d3dtx.d3dtx8.mDepth; surfaceFormat = d3dtx.d3dtx8.mSurfaceFormat; } else if (d3dtx.d3dtx9 != null) { header.dwWidth = d3dtx.d3dtx9.mWidth; header.dwHeight = d3dtx.d3dtx9.mHeight; header.dwMipMapCount = d3dtx.d3dtx9.mNumMipLevels; header.dwDepth = d3dtx.d3dtx9.mDepth; surfaceFormat = d3dtx.d3dtx9.mSurfaceFormat; } DDS_PIXELFORMAT new_ddspf = new DDS_PIXELFORMAT(); new_ddspf.dwFourCC = DDS_Functions.Get_FourCC_FromTellale(surfaceFormat); switch (surfaceFormat) { case Telltale.T3SurfaceFormat.eSurface_A8: new_ddspf.dwABitMask = 255; header.dwCaps = 4198408; //DDSCAPS_COMPLEX | DDSCAPS_TEXTURE | DDSCAPS_MIPMAP break; case Telltale.T3SurfaceFormat.eSurface_ARGB8: new_ddspf.dwABitMask = 255; new_ddspf.dwRBitMask = 255; new_ddspf.dwGBitMask = 255; new_ddspf.dwBBitMask = 255; header.dwCaps = 4198408; //DDSCAPS_COMPLEX | DDSCAPS_TEXTURE | DDSCAPS_MIPMAP break; } header.ddspf = new_ddspf; }