Example #1
0
        public DDS(string fileName, byte[] data)
            : base(fileName, data) // call the base constructor
        {
            byte[] buffer = headData;
            // put data inside DDSHeader
            GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);

            DDSHeader = (_DDSHeader)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(_DDSHeader));
            handle.Free();

            imgSize = new ImageSize(DDSHeader.Width, DDSHeader.Height);
            format  = subtype();
            switch (format)
            {
            case "DXT1": BPP = 0.5F; break;

            case "DXT5":
            case "ATI2": BPP = 1F; break;

            case "V8U8": BPP = 2F; break;

            default: BPP = (float)DDSHeader.RGBBitCount / 8; break;
            }
        }
Example #2
0
        public DDS(string fileName, byte[] data)
            : base(fileName, data) // call the base constructor
        {
            byte[] buffer = headData;
            // put data inside DDSHeader
            GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
            DDSHeader = (_DDSHeader)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(_DDSHeader));
            handle.Free();

            imgSize = new ImageSize(DDSHeader.Width, DDSHeader.Height);
            format = subtype();
            switch (format)
            {
                case "DXT1": BPP = 0.5F; break;
                case "DXT5":
                case "ATI2": BPP = 1F; break;
                case "V8U8": BPP = 2F; break;
                default: BPP = (float)DDSHeader.RGBBitCount / 8; break;
            }
        }