X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=image_png.c;h=967d6f732fe83015488f16ff35bc69decf7e1952;hb=1482926c39b83cd18851386229732ead26aef30a;hp=f71dfdea71eedd45a5597e458cbd403848e87c25;hpb=9ca5fac7f41e25a450e7ab28e262915863d1354f;p=xonotic%2Fdarkplaces.git diff --git a/image_png.c b/image_png.c index f71dfdea..967d6f73 100644 --- a/image_png.c +++ b/image_png.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2006 Serge "(515)" Ziryukin, Forest "LordHavoc" Hale + Copyright (C) 2006 Serge "(515)" Ziryukin, Ashley Rose Hale (LadyHavoc) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -24,7 +24,7 @@ //[515]: png implemented into DP ONLY FOR TESTING 2d stuff with csqc // so delete this bullshit :D // -//LordHavoc: rewrote most of this. +//LadyHavoc: rewrote most of this. #include "quakedef.h" #include "image.h" @@ -145,16 +145,20 @@ qboolean PNG_OpenLibrary (void) const char* dllnames [] = { #if WIN32 + "libpng16.dll", + "libpng16-16.dll", "libpng15-15.dll", "libpng15.dll", "libpng14-14.dll", "libpng14.dll", "libpng12.dll", #elif defined(MACOSX) + "libpng16.16.dylib", "libpng15.15.dylib", "libpng14.14.dylib", "libpng12.0.dylib", #else + "libpng16.so.16", "libpng15.so.15", // WTF libtool guidelines anyone? "libpng14.so.14", // WTF libtool guidelines anyone? "libpng12.so.0", @@ -204,6 +208,7 @@ void PNG_CloseLibrary (void) #define PNG_LIBPNG_VER_STRING_12 "1.2.4" #define PNG_LIBPNG_VER_STRING_14 "1.4.0" #define PNG_LIBPNG_VER_STRING_15 "1.5.0" +#define PNG_LIBPNG_VER_STRING_16 "1.6.0" #define PNG_COLOR_MASK_PALETTE 1 #define PNG_COLOR_MASK_COLOR 2 @@ -249,7 +254,7 @@ static struct qfile_t *outfile; } my_png; -//LordHavoc: removed __cdecl prefix, added overrun protection, and rewrote this to be more efficient +//LadyHavoc: removed __cdecl prefix, added overrun protection, and rewrote this to be more efficient static void PNG_fReadData(void *png, unsigned char *data, size_t length) { size_t l; @@ -278,17 +283,14 @@ static void PNG_fFlushData(void *png) static void PNG_error_fn(void *png, const char *message) { - Con_Printf("PNG_LoadImage: error: %s\n", message); + Con_Errorf("PNG_LoadImage: error: %s\n", message); } static void PNG_warning_fn(void *png, const char *message) { - Con_Printf("PNG_LoadImage: warning: %s\n", message); + Con_Warnf("PNG_LoadImage: warning: %s\n", message); } -extern int image_width; -extern int image_height; - unsigned char *PNG_LoadImage_BGRA (const unsigned char *raw, int filesize, int *miplevel) { unsigned int c; @@ -308,7 +310,8 @@ unsigned char *PNG_LoadImage_BGRA (const unsigned char *raw, int filesize, int * png = (void *)qpng_create_read_struct( (qpng_access_version_number() / 100 == 102) ? PNG_LIBPNG_VER_STRING_12 : (qpng_access_version_number() / 100 == 104) ? PNG_LIBPNG_VER_STRING_14 : - PNG_LIBPNG_VER_STRING_15, // nasty hack... whatever + (qpng_access_version_number() / 100 == 105) ? PNG_LIBPNG_VER_STRING_15 : + PNG_LIBPNG_VER_STRING_16, // nasty hack... whatever 0, PNG_error_fn, PNG_warning_fn ); if(!png) @@ -487,7 +490,10 @@ qboolean PNG_SaveImage_preflipped (const char *filename, int width, int height, } png = (void *)qpng_create_write_struct( - (qpng_access_version_number() / 100 == 102) ? PNG_LIBPNG_VER_STRING_12 : PNG_LIBPNG_VER_STRING_14, // nasty hack to support both libpng12 and libpng14 + (qpng_access_version_number() / 100 == 102) ? PNG_LIBPNG_VER_STRING_12 : + (qpng_access_version_number() / 100 == 104) ? PNG_LIBPNG_VER_STRING_14 : + (qpng_access_version_number() / 100 == 105) ? PNG_LIBPNG_VER_STRING_15 : + PNG_LIBPNG_VER_STRING_16, // nasty hack... whatever 0, PNG_error_fn, PNG_warning_fn ); if(!png) @@ -510,6 +516,8 @@ qboolean PNG_SaveImage_preflipped (const char *filename, int width, int height, if (setjmp((_JBTYPE *)png)) #elif defined(MACOSX) || defined(WIN32) if (setjmp((int *)png)) +#elif defined(__ANDROID__) + if (setjmp((long *)png)) #else if (setjmp((__jmp_buf_tag *)png)) #endif