mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 17:40:39 +00:00
c38affcded
* All renderdoc code up to this point was written by me, history is available by request
87 lines
3.0 KiB
C
87 lines
3.0 KiB
C
|
|
// little header to include forward declarations for miniz.c
|
|
|
|
#pragma once
|
|
|
|
extern "C" {
|
|
|
|
typedef unsigned char mz_uint8;
|
|
typedef signed short mz_int16;
|
|
typedef unsigned short mz_uint16;
|
|
typedef unsigned int mz_uint32;
|
|
typedef unsigned int mz_uint;
|
|
typedef long long mz_int64;
|
|
typedef unsigned long long mz_uint64;
|
|
typedef int mz_bool;
|
|
|
|
typedef struct
|
|
{
|
|
void *m_p;
|
|
size_t m_size, m_capacity;
|
|
mz_uint m_element_size;
|
|
} mz_zip_array;
|
|
|
|
struct mz_zip_internal_state_tag
|
|
{
|
|
mz_zip_array m_central_dir;
|
|
mz_zip_array m_central_dir_offsets;
|
|
mz_zip_array m_sorted_central_dir_offsets;
|
|
FILE *m_pFile;
|
|
void *m_pMem;
|
|
size_t m_mem_size;
|
|
size_t m_mem_capacity;
|
|
};
|
|
|
|
typedef struct mz_zip_internal_state_tag mz_zip_internal_state;
|
|
|
|
// Compression levels: 0-9 are the standard zlib-style levels, 10 is best possible compression (not zlib compatible, and may be very slow), MZ_DEFAULT_COMPRESSION=MZ_DEFAULT_LEVEL.
|
|
enum { MZ_NO_COMPRESSION = 0, MZ_BEST_SPEED = 1, MZ_BEST_COMPRESSION = 9, MZ_UBER_COMPRESSION = 10, MZ_DEFAULT_LEVEL = 6, MZ_DEFAULT_COMPRESSION = -1 };
|
|
|
|
typedef enum
|
|
{
|
|
MZ_ZIP_MODE_INVALID = 0,
|
|
MZ_ZIP_MODE_READING = 1,
|
|
MZ_ZIP_MODE_WRITING = 2,
|
|
MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3
|
|
} mz_zip_mode;
|
|
|
|
// Heap allocation callbacks.
|
|
// Note that mz_alloc_func parameter types purpsosely differ from zlib's: items/size is size_t, not unsigned long.
|
|
typedef void *(*mz_alloc_func)(void *opaque, size_t items, size_t size);
|
|
typedef void (*mz_free_func)(void *opaque, void *address);
|
|
typedef void *(*mz_realloc_func)(void *opaque, void *address, size_t items, size_t size);
|
|
|
|
typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n);
|
|
typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n);
|
|
|
|
typedef struct
|
|
{
|
|
mz_uint64 m_archive_size;
|
|
mz_uint64 m_central_directory_file_ofs;
|
|
mz_uint m_total_files;
|
|
mz_zip_mode m_zip_mode;
|
|
|
|
mz_uint m_file_offset_alignment;
|
|
|
|
mz_alloc_func m_pAlloc;
|
|
mz_free_func m_pFree;
|
|
mz_realloc_func m_pRealloc;
|
|
void *m_pAlloc_opaque;
|
|
|
|
mz_file_read_func m_pRead;
|
|
mz_file_write_func m_pWrite;
|
|
void *m_pIO_opaque;
|
|
|
|
mz_zip_internal_state *m_pState;
|
|
|
|
} mz_zip_archive;
|
|
|
|
mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning);
|
|
mz_bool mz_zip_writer_init_wfile(mz_zip_archive *pZip, const wchar_t *pFilename, mz_uint64 size_to_reserve_at_beginning);
|
|
mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags);
|
|
mz_bool mz_zip_writer_add_wfile(mz_zip_archive *pZip, const char *pArchive_name, const wchar_t *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags);
|
|
mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags);
|
|
mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip);
|
|
mz_bool mz_zip_writer_end(mz_zip_archive *pZip);
|
|
|
|
}; // extern "C"
|