|
|
@ -74,6 +74,11 @@ |
|
|
|
* Allow scale all the drawn content to match the high-DPI equivalent size (only PLATFORM_DESKTOP) |
|
|
|
* NOTE: This flag is forced on macOS, since most displays are high-DPI |
|
|
|
* |
|
|
|
* #define SUPPORT_COMPRESSION_API |
|
|
|
* Support CompressData() and DecompressData() functions, those functions use zlib implementation |
|
|
|
* provided by stb_image and stb_image_write libraries, so, those libraries must be enabled on textures module |
|
|
|
* for linkage |
|
|
|
* |
|
|
|
* DEPENDENCIES: |
|
|
|
* rglfw - Manage graphic device, OpenGL context and inputs on PLATFORM_DESKTOP (Windows, Linux, OSX. FreeBSD, OpenBSD, NetBSD, DragonFly) |
|
|
|
* raymath - 3D math functionality (Vector2, Vector3, Matrix, Quaternion) |
|
|
@ -252,6 +257,12 @@ |
|
|
|
#include <emscripten/html5.h> // Emscripten HTML5 library |
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(SUPPORT_COMPRESSION_API) |
|
|
|
// NOTE: Those declarations require stb_image and stb_image_write definitions, included in textures module |
|
|
|
unsigned char *stbi_zlib_compress(unsigned char *data, int data_len, int *out_len, int quality); |
|
|
|
char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen); |
|
|
|
#endif |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Defines and Macros |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
@ -2019,6 +2030,32 @@ long GetFileModTime(const char *fileName) |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
// Compress data (DEFLATE algorythm) |
|
|
|
unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength) |
|
|
|
{ |
|
|
|
#define COMPRESSION_QUALITY_DEFLATE 8 |
|
|
|
|
|
|
|
unsigned char *compData = NULL; |
|
|
|
|
|
|
|
#if defined(SUPPORT_COMPRESSION_API) |
|
|
|
compData = stbi_zlib_compress(data, dataLength, compDataLength, COMPRESSION_QUALITY_DEFLATE); |
|
|
|
#endif |
|
|
|
|
|
|
|
return compData; |
|
|
|
} |
|
|
|
|
|
|
|
// Decompress data (DEFLATE algorythm) |
|
|
|
char *DecompressData(char *compData, int compDataLength, int *dataLength) |
|
|
|
{ |
|
|
|
char *data = NULL; |
|
|
|
|
|
|
|
#if defined(SUPPORT_COMPRESSION_API) |
|
|
|
data = stbi_zlib_decode_malloc(compData, compDataLength, dataLength); |
|
|
|
#endif |
|
|
|
|
|
|
|
return data; |
|
|
|
} |
|
|
|
|
|
|
|
// Save integer value to storage file (to defined position) |
|
|
|
// NOTE: Storage positions is directly related to file memory layout (4 bytes each integer) |
|
|
|
void StorageSaveValue(int position, int value) |
|
|
|