示例#1
0
        public DdsPixelFormat(DdsPFType type)
        {
            switch (type)
            {
            case DdsPFType.RGB:
                flags           = DDPF_RGB;
                compressionName = "RGB ".ToCharArray();
                RGBBitCount     = 24;
                RBitMask        = 0xFF0000;
                GBitMask        = 0x00FF00;
                BBitMask        = 0x0000FF; break;

            case DdsPFType.RGBA:
                flags           = DDPF_RGB | DDPF_ALPHAPIXELS;
                compressionName = "RGBA".ToCharArray();
                RGBBitCount     = 32;
                RBitMask        = 0xFF000000;
                GBitMask        = 0x00FF0000;
                BBitMask        = 0x0000FF00;
                ABitMask        = 0x000000FF; break;

            case DdsPFType.DXT1:
                flags           = DDPF_FOURCC;
                compressionName = "DXT1".ToCharArray();
                RGBBitCount     = 12;
                RBitMask        = 0xFF000000;
                GBitMask        = 0x00FF0000;
                BBitMask        = 0x0000FF00; break;

            case DdsPFType.DXT3:
                flags           = DDPF_FOURCC;
                compressionName = "DXT3".ToCharArray();
                RGBBitCount     = 16;
                RBitMask        = 0xFF000000;
                GBitMask        = 0x00FF0000;
                BBitMask        = 0x0000FF00; break;

            case DdsPFType.DXT5:
                flags           = DDPF_FOURCC;
                compressionName = "DXT5".ToCharArray();
                RGBBitCount     = 64;
                RBitMask        = 0xFF000000;
                GBitMask        = 0x00FF0000;
                BBitMask        = 0x0000FF00; break;

            case DdsPFType.ATI2n:
                flags           = DDPF_FOURCC;
                compressionName = "ATI2".ToCharArray();
                RGBBitCount     = 64;
                break;
            }
        }
示例#2
0
        public DdsPixelFormat(DdsPFType type)
        {
            switch (type)
            {
            case DdsPFType.RGB:
                Flags           = DDPF_RGB;
                RGBBitCount     = 24;
                CompressionName = "RGB ";
                RBitMask        = 0x0000FF;
                GBitMask        = 0x00FF00;
                BBitMask        = 0xFF0000; break;

            case DdsPFType.RGBA:
                Flags           = DDPF_RGB | DDPF_ALPHAPIXELS;
                RGBBitCount     = 32;
                CompressionName = "RGBA";
                RBitMask        = 0x000000FF;
                GBitMask        = 0x0000FF00;
                BBitMask        = 0x00FF0000;
                ABitMask        = 0xFF000000; break;

            case DdsPFType.DXT1:
                Flags           = DDPF_FOURCC;
                CompressionName = "DXT1";
                RGBBitCount     = 16;
                RBitMask        = 0x0F;
                GBitMask        = 0xFF;
                BBitMask        = 0xF0; break;

            case DdsPFType.DXT2:
                Flags           = DDPF_FOURCC;
                CompressionName = "DXT2";
                RGBBitCount     = 24;
                RBitMask        = 0xF0000000;
                GBitMask        = 0x0F000000;
                BBitMask        = 0x00F00000;
                ABitMask        = 0x000F0000; break;

            case DdsPFType.DXT3:
                Flags           = DDPF_FOURCC;
                CompressionName = "DXT3";
                RGBBitCount     = 24;
                RBitMask        = 0xF0000000;
                GBitMask        = 0x0F000000;
                BBitMask        = 0x00F00000;
                ABitMask        = 0x000FF000; break;

            case DdsPFType.DXT4:
                Flags           = DDPF_FOURCC;
                CompressionName = "DXT4";
                RGBBitCount     = 32;
                RBitMask        = 0xFF000000; break;

            case DdsPFType.DXT5:
                Flags           = DDPF_FOURCC;
                CompressionName = "DXT5";
                RGBBitCount     = 64;
                RBitMask        = 0xFF000000;
                GBitMask        = 0x00FF0000; break;

            case DdsPFType.ATI2:
                Flags           = DDPF_FOURCC;
                CompressionName = "ATI2";
                RGBBitCount     = 16;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }