jpeg_tried_loading = true;
+#ifdef __ANDROID__
+ // loading the native Android libjpeg.so causes crashes
+ Con_Printf("Not opening libjpeg.so dynamically on Android - use LINK_TO_LIBJPEG instead if it is needed.\n");
+ return false;
+#endif
+
// Load the DLL
return Sys_LoadLibrary (dllnames, &jpeg_dll, jpegfuncs);
#endif
}
#endif
- //quality_guess = (100 * jpegsize - 41000) / (width*height) + 2; // fits random data
- quality_guess = (256 * jpegsize - 81920) / (width*height) - 8; // fits Nexuiz's map pictures
+ //quality_guess = (int)((100 * jpegsize - 41000) / (width*height) + 2); // fits random data
+ quality_guess = (int)((256 * jpegsize - 81920) / (width*height) - 8); // fits Nexuiz's/Xonotic's map pictures
quality_guess = bound(0, quality_guess, 100);
quality = bound(0, quality_guess + sv_writepicture_quality.integer, 100); // assume it can do 10 failed attempts
static void CompressedImageCache_Add(const char *imagename, size_t maxsize, void *compressed, size_t compressed_size)
{
- const char *hashkey = va("%s:%d", imagename, (int) maxsize);
+ char vabuf[1024];
+ const char *hashkey = va(vabuf, sizeof(vabuf), "%s:%d", imagename, (int) maxsize);
int hashindex = CRC_Block((unsigned char *) hashkey, strlen(hashkey)) % COMPRESSEDIMAGECACHE_SIZE;
CompressedImageCacheItem *i;
static CompressedImageCacheItem *CompressedImageCache_Find(const char *imagename, size_t maxsize)
{
- const char *hashkey = va("%s:%d", imagename, (int) maxsize);
+ char vabuf[1024];
+ const char *hashkey = va(vabuf, sizeof(vabuf), "%s:%d", imagename, (int) maxsize);
int hashindex = CRC_Block((unsigned char *) hashkey, strlen(hashkey)) % COMPRESSEDIMAGECACHE_SIZE;
CompressedImageCacheItem *i = CompressedImageCache[hashindex];