// // Copyright 2020 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // frame_capture_utils: // Helper functions for capture and replay of traces. // #ifndef UTIL_FRAME_CAPTURE_UTILS_H_ #define UTIL_FRAME_CAPTURE_UTILS_H_ #include #include #include #include "common/angleutils.h" #define USE_SYSTEM_ZLIB #include "compression_utils_portable.h" namespace angle { inline uint8_t *DecompressBinaryData(const std::vector &compressedData) { uint32_t uncompressedSize = zlib_internal::GetGzipUncompressedSize(compressedData.data(), compressedData.size()); std::unique_ptr uncompressedData(new uint8_t[uncompressedSize]); uLong destLen = uncompressedSize; int zResult = zlib_internal::GzipUncompressHelper(uncompressedData.get(), &destLen, compressedData.data(), static_cast(compressedData.size())); if (zResult != Z_OK) { std::cerr << "Failure to decompressed binary data: " << zResult << "\n"; return nullptr; } return uncompressedData.release(); } } // namespace angle #endif // UTIL_FRAME_CAPTURE_UTILS_H_