]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - jpeg.c
made darkplaces compile successfully with g++ to test for errors C doesn't care about...
[xonotic/darkplaces.git] / jpeg.c
diff --git a/jpeg.c b/jpeg.c
index 964b170c4c5a6b107d7bed05e1c0d930c58bb0d8..4934b75899220afaa8820512e42a8c418abe1f37 100644 (file)
--- a/jpeg.c
+++ b/jpeg.c
@@ -395,25 +395,27 @@ Try to load the JPEG DLL
 */
 qboolean JPEG_OpenLibrary (void)
 {
-       const char* dllname;
+       const char* dllnames [] =
+       {
+#if defined(WIN64)
+               "libjpeg64.dll",
+#elif defined(WIN32)
+               "libjpeg.dll",
+#elif defined(MACOSX)
+               "libjpeg.62.dylib",
+#else
+               "libjpeg.so.62",
+               "libjpeg.so",
+#endif
+               NULL
+       };
 
        // Already loaded?
        if (jpeg_dll)
                return true;
 
-// TODO: make Sys_LoadLibrary support multiple names
-#ifdef WIN32
-       dllname = "libjpeg.dll";
-#elif defined(__FreeBSD__)
-       dllname = "libjpeg.so";
-#elif defined(MACOSX)
-       dllname = "libjpeg.62.dylib";
-#else
-       dllname = "libjpeg.so.62";
-#endif
-
        // Load the DLL
-       if (! Sys_LoadLibrary (dllname, &jpeg_dll, jpegfuncs))
+       if (! Sys_LoadLibrary (dllnames, &jpeg_dll, jpegfuncs))
        {
                Con_Printf ("JPEG support disabled\n");
                return false;
@@ -468,9 +470,9 @@ static void JPEG_SkipInputData (j_decompress_ptr cinfo, long num_bytes)
     cinfo->src->bytes_in_buffer -= num_bytes;
 }
 
-static void JPEG_MemSrc (j_decompress_ptr cinfo, qbyte *buffer)
+static void JPEG_MemSrc (j_decompress_ptr cinfo, const qbyte *buffer)
 {
-       cinfo->src = cinfo->mem->alloc_small ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof (struct jpeg_source_mgr));
+       cinfo->src = (struct jpeg_source_mgr *)cinfo->mem->alloc_small ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof (struct jpeg_source_mgr));
 
        cinfo->src->next_input_byte = buffer;
        cinfo->src->bytes_in_buffer = fs_filesize;
@@ -496,7 +498,7 @@ JPEG_LoadImage
 Load a JPEG image into a RGBA buffer
 ====================
 */
-qbyte* JPEG_LoadImage (qbyte *f, int matchwidth, int matchheight)
+qbyte* JPEG_LoadImage (const qbyte *f, int matchwidth, int matchheight)
 {
        struct jpeg_decompress_struct cinfo;
        struct jpeg_error_mgr jerr;
@@ -528,8 +530,8 @@ qbyte* JPEG_LoadImage (qbyte *f, int matchwidth, int matchheight)
                return NULL;
        }
 
-       image_rgba = Mem_Alloc(tempmempool, image_width * image_height * 4);
-       scanline = Mem_Alloc(tempmempool, image_width * cinfo.output_components);
+       image_rgba = (qbyte *)Mem_Alloc(tempmempool, image_width * image_height * 4);
+       scanline = (qbyte *)Mem_Alloc(tempmempool, image_width * cinfo.output_components);
        if (!image_rgba || !scanline)
        {
                if (!image_rgba)
@@ -628,7 +630,7 @@ static void JPEG_TermDestination (j_compress_ptr cinfo)
 
        // Write any data remaining in the buffer
        if (datacount > 0)
-               if (FS_Write (dest->outfile, dest->buffer, datacount) != datacount)
+               if (FS_Write (dest->outfile, dest->buffer, datacount) != (fs_offset_t)datacount)
                        error_in_jpeg = true;
 }
 
@@ -671,7 +673,7 @@ qboolean JPEG_SaveImage_preflipped (const char *filename, int width, int height,
        }
 
        // Open the file
-       file = FS_Open (filename, "wb", true);
+       file = FS_Open (filename, "wb", true, false);
        if (!file)
                return false;