summaryrefslogtreecommitdiff
path: root/games/ufoai/patches/patch-ab
blob: 24f7e559ae51f249502068670e6f2edc2a540bf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
$NetBSD: patch-ab,v 1.3 2011/04/05 11:32:46 wiz Exp $

Fix build with png-1.5.

Last chunk: ?

--- src/renderer/r_image.c.orig	2008-04-25 16:15:02.000000000 +0000
+++ src/renderer/r_image.c
@@ -254,7 +254,7 @@ static int R_LoadPNG (const char *name, 
 		png_set_palette_to_rgb(png_ptr);
 	/* convert 1-2-4 bits grayscale images to 8 bits grayscale */
 	if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
-		png_set_gray_1_2_4_to_8(png_ptr);
+		png_set_expand_gray_1_2_4_to_8(png_ptr);
 	if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
 		png_set_tRNS_to_alpha(png_ptr);
 
@@ -268,32 +268,32 @@ static int R_LoadPNG (const char *name, 
 	row_pointers = png_get_rows(png_ptr, info_ptr);
 	rowptr = 0;
 
-	img = VID_TagAlloc(vid_imagePool, info_ptr->width * info_ptr->height * 4, 0);
+	img = VID_TagAlloc(vid_imagePool, png_get_image_width(png_ptr, info_ptr) * png_get_image_height(png_ptr, info_ptr) * 4, 0);
 	if (pic)
 		*pic = img;
 
-	if (info_ptr->channels == 4) {
-		for (i = 0; i < info_ptr->height; i++) {
-			memcpy (img + rowptr, row_pointers[i], info_ptr->rowbytes);
-			rowptr += info_ptr->rowbytes;
+	if (png_get_channels(png_ptr, info_ptr) == 4) {
+		for (i = 0; i < png_get_image_height(png_ptr, info_ptr); i++) {
+			memcpy (img + rowptr, row_pointers[i], png_get_rowbytes(png_ptr, info_ptr));
+			rowptr += png_get_rowbytes(png_ptr, info_ptr);
 		}
 	} else {
 		uint32_t	j;
 
-		memset(img, 255, info_ptr->width * info_ptr->height * 4);
-		for (rowptr = 0, i = 0; i < info_ptr->height; i++) {
-			for (j = 0; j < info_ptr->rowbytes; j += info_ptr->channels) {
-				memcpy(img + rowptr, row_pointers[i] + j, info_ptr->channels);
+		memset(img, 255, png_get_image_width(png_ptr, info_ptr) * png_get_image_height(png_ptr, info_ptr) * 4);
+		for (rowptr = 0, i = 0; i < png_get_image_height(png_ptr, info_ptr); i++) {
+			for (j = 0; j < png_get_rowbytes(png_ptr, info_ptr); j += png_get_channels(png_ptr, info_ptr)) {
+				memcpy(img + rowptr, row_pointers[i] + j, png_get_channels(png_ptr, info_ptr));
 				rowptr += 4;
 			}
 		}
 	}
 
 	if (width)
-		*width = info_ptr->width;
+		*width = png_get_image_width(png_ptr, info_ptr);
 	if (height)
-		*height = info_ptr->height;
-	samples = info_ptr->channels;
+		*height = png_get_image_height(png_ptr, info_ptr);
+	samples = png_get_channels(png_ptr, info_ptr);
 
 	png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
 
@@ -651,17 +651,6 @@ static void jpg_skip_input_data (j_decom
 	cinfo->src->bytes_in_buffer -= (size_t) num_bytes;
 }
 
-static void jpeg_mem_src (j_decompress_ptr cinfo, byte * mem, int len)
-{
-	cinfo->src = (struct jpeg_source_mgr *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof(struct jpeg_source_mgr));
-	cinfo->src->init_source = jpg_null;
-	cinfo->src->fill_input_buffer = jpg_fill_input_buffer;
-	cinfo->src->skip_input_data = jpg_skip_input_data;
-	cinfo->src->resync_to_restart = jpeg_resync_to_restart;
-	cinfo->src->term_source = jpg_null;
-	cinfo->src->bytes_in_buffer = len;
-	cinfo->src->next_input_byte = mem;
-}
 
 /**
  * @sa R_LoadTGA