function CompressedTextureResource(source, options) {
        var _this = _super.call(this, source, options) || this;
        _this.format = options.format;
        _this.levels = options.levels || 1;
        _this._width = options.width;
        _this._height = options.height;
        _this._extension = CompressedTextureResource._formatToExtension(_this.format);
        if (options.levelBuffers || _this.buffer) {
            // ViewableBuffer doesn't support byteOffset :-( so allow source to be Uint8Array
            _this._levelBuffers = options.levelBuffers
                || CompressedTextureResource._createLevelBuffers(source instanceof Uint8Array ? source : _this.buffer.uint8View, _this.format, _this.levels, 4, 4, // PVRTC has 8x4 blocks in 2bpp mode
                _this.width, _this.height);
        }
        return _this;
    }
@param source - the buffer/URL holding the compressed texture data
@param options
@param {PIXI.INTERNAL_FORMATS} options.format - the compression format
@param {number} options.width - the image width in pixels.
@param {number} options.height - the image height in pixels.
@param {number} [options.level=1] - the mipmap levels stored in the compressed texture, including level 0.
@param {number} [options.levelBuffers] - the buffers for each mipmap level. `CompressedTextureResource` can allows you
     to pass `null` for `source`, for cases where each level is stored in non-contiguous memory.