Mercurial > hg > mxe
annotate src/libharu-1-fixes.patch @ 3110:4b72e7cf4f30
shared libraries and cross build for hdf5
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 26 Dec 2012 16:42:35 -0500 |
parents | 99516e73b368 |
children |
rev | line source |
---|---|
2333
f653602a0500
Rebrand to new project name MXE
Volker Grabsch <vog@notjusthosting.com>
parents:
2281
diff
changeset
|
1 # This file is part of MXE. |
2353
99516e73b368
Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2333
diff
changeset
|
2 # See index.html for further information. |
2235
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
3 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
4 From 531d2a9af8c51ad8badc32bc9ba43bb3b87b0e9f Mon Sep 17 00:00:00 2001 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
5 From: Antony Dovgal <tony@daylessday.org> |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
6 Date: Mon, 10 Jan 2011 01:22:14 +0300 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
7 Subject: [PATCH] fix build with libpng 1.5.0 (reported by Tamas Tevesz) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
8 (cherry picked from commit |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
9 e5bf8b01f6c3d5e3fe0e26ac5345e0da10c03934) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
10 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
11 Conflicts: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
12 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
13 CHANGES |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
14 --- |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
15 src/hpdf_image_png.c | 109 +++++++++++++++++++++++++++----------------------- |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
16 1 files changed, 59 insertions(+), 50 deletions(-) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
17 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
18 diff --git a/src/hpdf_image_png.c b/src/hpdf_image_png.c |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
19 index b8f831e..6057424 100644 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
20 --- a/src/hpdf_image_png.c |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
21 +++ b/src/hpdf_image_png.c |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
22 @@ -109,14 +109,15 @@ ReadPngData_Interlaced (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
23 png_infop info_ptr) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
24 { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
25 png_uint_32 len = png_get_rowbytes(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
26 + png_uint_32 height = png_get_image_height(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
27 png_bytep* row_pointers = HPDF_GetMem (image->mmgr, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
28 - info_ptr->height * sizeof (png_bytep)); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
29 + height * sizeof (png_bytep)); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
30 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
31 if (row_pointers) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
32 HPDF_UINT i; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
33 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
34 - HPDF_MemSet (row_pointers, 0, info_ptr->height * sizeof (png_bytep)); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
35 - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
36 + HPDF_MemSet (row_pointers, 0, height * sizeof (png_bytep)); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
37 + for (i = 0; i < (HPDF_UINT)height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
38 row_pointers[i] = HPDF_GetMem (image->mmgr, len); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
39 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
40 if (image->error->error_no != HPDF_OK) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
41 @@ -126,7 +127,7 @@ ReadPngData_Interlaced (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
42 if (image->error->error_no == HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
43 png_read_image(png_ptr, row_pointers); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
44 if (image->error->error_no == HPDF_OK) { /* add this line */ |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
45 - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
46 + for (i = 0; i < (HPDF_UINT)height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
47 if (HPDF_Stream_Write (image->stream, row_pointers[i], len) != |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
48 HPDF_OK) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
49 break; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
50 @@ -135,7 +136,7 @@ ReadPngData_Interlaced (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
51 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
52 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
53 /* clean up */ |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
54 - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
55 + for (i = 0; i < (HPDF_UINT)height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
56 HPDF_FreeMem (image->mmgr, row_pointers[i]); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
57 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
58 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
59 @@ -151,12 +152,13 @@ ReadPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
60 png_infop info_ptr) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
61 { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
62 png_uint_32 len = png_get_rowbytes(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
63 + png_uint_32 height = png_get_image_height(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
64 png_bytep buf_ptr = HPDF_GetMem (image->mmgr, len); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
65 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
66 if (buf_ptr) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
67 HPDF_UINT i; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
68 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
69 - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
70 + for (i = 0; i < (HPDF_UINT)height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
71 png_read_rows(png_ptr, (png_byte**)&buf_ptr, NULL, 1); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
72 if (image->error->error_no != HPDF_OK) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
73 break; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
74 @@ -182,14 +184,16 @@ ReadTransparentPaletteData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
75 HPDF_STATUS ret = HPDF_OK; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
76 HPDF_UINT i, j; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
77 png_bytep *row_ptr; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
78 + png_uint_32 height = png_get_image_height(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
79 + png_uint_32 width = png_get_image_width(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
80 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
81 - row_ptr = HPDF_GetMem (image->mmgr, info_ptr->height * sizeof(png_bytep)); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
82 + row_ptr = HPDF_GetMem (image->mmgr, height * sizeof(png_bytep)); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
83 if (!row_ptr) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
84 return HPDF_FAILD_TO_ALLOC_MEM; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
85 } else { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
86 png_uint_32 len = png_get_rowbytes(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
87 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
88 - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
89 + for (i = 0; i < (HPDF_UINT)height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
90 row_ptr[i] = HPDF_GetMem(image->mmgr, len); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
91 if (!row_ptr[i]) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
92 for (; i >= 0; i--) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
93 @@ -207,19 +211,19 @@ ReadTransparentPaletteData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
94 goto Error; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
95 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
96 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
97 - for (j = 0; j < info_ptr->height; j++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
98 - for (i = 0; i < info_ptr->width; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
99 - smask_data[info_ptr->width * j + i] = (row_ptr[j][i] < num_trans) ? trans[row_ptr[j][i]] : 0xFF; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
100 + for (j = 0; j < height; j++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
101 + for (i = 0; i < width; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
102 + smask_data[width * j + i] = (row_ptr[j][i] < num_trans) ? trans[row_ptr[j][i]] : 0xFF; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
103 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
104 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
105 - if (HPDF_Stream_Write (image->stream, row_ptr[j], info_ptr->width) != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
106 + if (HPDF_Stream_Write (image->stream, row_ptr[j], width) != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
107 ret = HPDF_FILE_IO_ERROR; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
108 goto Error; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
109 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
110 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
111 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
112 Error: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
113 - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
114 + for (i = 0; i < (HPDF_UINT)height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
115 HPDF_FreeMem (image->mmgr, row_ptr[i]); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
116 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
117 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
118 @@ -238,6 +242,8 @@ ReadTransparentPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
119 HPDF_UINT i, j; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
120 png_bytep *row_ptr, row; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
121 png_byte color_type; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
122 + png_uint_32 height = png_get_image_height(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
123 + png_uint_32 width = png_get_image_width(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
124 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
125 color_type = png_get_color_type(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
126 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
127 @@ -245,13 +251,13 @@ ReadTransparentPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
128 return HPDF_INVALID_PNG_IMAGE; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
129 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
130 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
131 - row_ptr = HPDF_GetMem (image->mmgr, info_ptr->height * sizeof(png_bytep)); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
132 + row_ptr = HPDF_GetMem (image->mmgr, height * sizeof(png_bytep)); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
133 if (!row_ptr) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
134 return HPDF_FAILD_TO_ALLOC_MEM; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
135 } else { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
136 png_uint_32 len = png_get_rowbytes(png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
137 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
138 - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
139 + for (i = 0; i < (HPDF_UINT)height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
140 row_ptr[i] = HPDF_GetMem(image->mmgr, len); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
141 if (!row_ptr[i]) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
142 for (; i >= 0; i--) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
143 @@ -271,12 +277,12 @@ ReadTransparentPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
144 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
145 switch (color_type) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
146 case PNG_COLOR_TYPE_RGB_ALPHA: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
147 - row_len = 3 * info_ptr->width * sizeof(png_byte); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
148 - for (j = 0; j < info_ptr->height; j++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
149 - for (i = 0; i < info_ptr->width; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
150 + row_len = 3 * width * sizeof(png_byte); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
151 + for (j = 0; j < height; j++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
152 + for (i = 0; i < width; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
153 row = row_ptr[j]; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
154 memmove(row + (3 * i), row + (4*i), 3); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
155 - smask_data[info_ptr->width * j + i] = row[4 * i + 3]; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
156 + smask_data[width * j + i] = row[4 * i + 3]; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
157 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
158 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
159 if (HPDF_Stream_Write (image->stream, row, row_len) != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
160 @@ -286,12 +292,12 @@ ReadTransparentPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
161 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
162 break; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
163 case PNG_COLOR_TYPE_GRAY_ALPHA: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
164 - row_len = info_ptr->width * sizeof(png_byte); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
165 - for (j = 0; j < info_ptr->height; j++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
166 - for (i = 0; i < info_ptr->width; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
167 + row_len = width * sizeof(png_byte); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
168 + for (j = 0; j < height; j++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
169 + for (i = 0; i < width; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
170 row = row_ptr[j]; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
171 row[i] = row[2 * i]; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
172 - smask_data[info_ptr->width * j + i] = row[2 * i + 1]; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
173 + smask_data[width * j + i] = row[2 * i + 1]; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
174 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
175 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
176 if (HPDF_Stream_Write (image->stream, row, row_len) != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
177 @@ -306,7 +312,7 @@ ReadTransparentPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
178 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
179 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
180 Error: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
181 - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
182 + for (i = 0; i < (HPDF_UINT)height; i++) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
183 HPDF_FreeMem (image->mmgr, row_ptr[i]); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
184 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
185 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
186 @@ -415,7 +421,8 @@ LoadPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
187 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
188 { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
189 HPDF_STATUS ret = HPDF_OK; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
190 - |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
191 + png_uint_32 width, height; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
192 + int bit_depth, color_type; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
193 png_structp png_ptr = NULL; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
194 png_infop info_ptr = NULL; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
195 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
196 @@ -447,8 +454,10 @@ LoadPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
197 goto Exit; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
198 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
199 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
200 + png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, NULL, NULL, NULL); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
201 + |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
202 /* 16bit images are not supported. */ |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
203 - if (info_ptr->bit_depth == 16) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
204 + if (bit_depth == 16) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
205 png_set_strip_16(png_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
206 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
207 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
208 @@ -458,7 +467,7 @@ LoadPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
209 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
210 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
211 /* check palette-based images for transparent areas and load them immediately if found */ |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
212 - if (xref && PNG_COLOR_TYPE_PALETTE & info_ptr->color_type) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
213 + if (xref && PNG_COLOR_TYPE_PALETTE & color_type) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
214 png_bytep trans; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
215 int num_trans; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
216 HPDF_Dict smask; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
217 @@ -478,10 +487,10 @@ LoadPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
218 smask->header.obj_class |= HPDF_OSUBCLASS_XOBJECT; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
219 ret = HPDF_Dict_AddName (smask, "Type", "XObject"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
220 ret += HPDF_Dict_AddName (smask, "Subtype", "Image"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
221 - ret += HPDF_Dict_AddNumber (smask, "Width", (HPDF_UINT)info_ptr->width); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
222 - ret += HPDF_Dict_AddNumber (smask, "Height", (HPDF_UINT)info_ptr->height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
223 + ret += HPDF_Dict_AddNumber (smask, "Width", (HPDF_UINT)width); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
224 + ret += HPDF_Dict_AddNumber (smask, "Height", (HPDF_UINT)height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
225 ret += HPDF_Dict_AddName (smask, "ColorSpace", "DeviceGray"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
226 - ret += HPDF_Dict_AddNumber (smask, "BitsPerComponent", (HPDF_UINT)info_ptr->bit_depth); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
227 + ret += HPDF_Dict_AddNumber (smask, "BitsPerComponent", (HPDF_UINT)bit_depth); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
228 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
229 if (ret != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
230 HPDF_Dict_Free(smask); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
231 @@ -489,7 +498,7 @@ LoadPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
232 goto Exit; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
233 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
234 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
235 - smask_data = HPDF_GetMem(image->mmgr, info_ptr->width * info_ptr->height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
236 + smask_data = HPDF_GetMem(image->mmgr, width * height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
237 if (!smask_data) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
238 HPDF_Dict_Free(smask); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
239 ret = HPDF_FAILD_TO_ALLOC_MEM; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
240 @@ -503,7 +512,7 @@ LoadPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
241 goto Exit; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
242 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
243 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
244 - if (HPDF_Stream_Write(smask->stream, smask_data, info_ptr->width * info_ptr->height) != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
245 + if (HPDF_Stream_Write(smask->stream, smask_data, width * height) != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
246 HPDF_FreeMem(image->mmgr, smask_data); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
247 HPDF_Dict_Free(smask); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
248 ret = HPDF_FILE_IO_ERROR; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
249 @@ -513,9 +522,9 @@ LoadPngData (HPDF_Dict image, |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
250 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
251 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
252 ret += CreatePallet(image, png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
253 - ret += HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)info_ptr->width); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
254 - ret += HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)info_ptr->height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
255 - ret += HPDF_Dict_AddNumber (image, "BitsPerComponent", (HPDF_UINT)info_ptr->bit_depth); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
256 + ret += HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)width); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
257 + ret += HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
258 + ret += HPDF_Dict_AddNumber (image, "BitsPerComponent", (HPDF_UINT)bit_depth); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
259 ret += HPDF_Dict_Add (image, "SMask", smask); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
260 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
261 png_destroy_read_struct(&png_ptr, &info_ptr, NULL); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
262 @@ -526,7 +535,7 @@ no_transparent_color_in_palette: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
263 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
264 /* read images with alpha channel right away |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
265 we have to do this because image transparent mask must be added to the Xref */ |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
266 - if (xref && PNG_COLOR_MASK_ALPHA & info_ptr->color_type) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
267 + if (xref && PNG_COLOR_MASK_ALPHA & color_type) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
268 HPDF_Dict smask; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
269 png_bytep smask_data; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
270 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
271 @@ -539,10 +548,10 @@ no_transparent_color_in_palette: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
272 smask->header.obj_class |= HPDF_OSUBCLASS_XOBJECT; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
273 ret = HPDF_Dict_AddName (smask, "Type", "XObject"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
274 ret += HPDF_Dict_AddName (smask, "Subtype", "Image"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
275 - ret += HPDF_Dict_AddNumber (smask, "Width", (HPDF_UINT)info_ptr->width); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
276 - ret += HPDF_Dict_AddNumber (smask, "Height", (HPDF_UINT)info_ptr->height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
277 + ret += HPDF_Dict_AddNumber (smask, "Width", (HPDF_UINT)width); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
278 + ret += HPDF_Dict_AddNumber (smask, "Height", (HPDF_UINT)height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
279 ret += HPDF_Dict_AddName (smask, "ColorSpace", "DeviceGray"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
280 - ret += HPDF_Dict_AddNumber (smask, "BitsPerComponent", (HPDF_UINT)info_ptr->bit_depth); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
281 + ret += HPDF_Dict_AddNumber (smask, "BitsPerComponent", (HPDF_UINT)bit_depth); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
282 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
283 if (ret != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
284 HPDF_Dict_Free(smask); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
285 @@ -550,7 +559,7 @@ no_transparent_color_in_palette: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
286 goto Exit; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
287 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
288 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
289 - smask_data = HPDF_GetMem(image->mmgr, info_ptr->width * info_ptr->height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
290 + smask_data = HPDF_GetMem(image->mmgr, width * height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
291 if (!smask_data) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
292 HPDF_Dict_Free(smask); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
293 ret = HPDF_FAILD_TO_ALLOC_MEM; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
294 @@ -564,7 +573,7 @@ no_transparent_color_in_palette: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
295 goto Exit; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
296 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
297 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
298 - if (HPDF_Stream_Write(smask->stream, smask_data, info_ptr->width * info_ptr->height) != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
299 + if (HPDF_Stream_Write(smask->stream, smask_data, width * height) != HPDF_OK) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
300 HPDF_FreeMem(image->mmgr, smask_data); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
301 HPDF_Dict_Free(smask); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
302 ret = HPDF_FILE_IO_ERROR; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
303 @@ -572,14 +581,14 @@ no_transparent_color_in_palette: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
304 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
305 HPDF_FreeMem(image->mmgr, smask_data); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
306 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
307 - if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
308 + if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
309 ret += HPDF_Dict_AddName (image, "ColorSpace", "DeviceGray"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
310 } else { |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
311 ret += HPDF_Dict_AddName (image, "ColorSpace", "DeviceRGB"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
312 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
313 - ret += HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)info_ptr->width); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
314 - ret += HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)info_ptr->height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
315 - ret += HPDF_Dict_AddNumber (image, "BitsPerComponent", (HPDF_UINT)info_ptr->bit_depth); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
316 + ret += HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)width); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
317 + ret += HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)height); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
318 + ret += HPDF_Dict_AddNumber (image, "BitsPerComponent", (HPDF_UINT)bit_depth); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
319 ret += HPDF_Dict_Add (image, "SMask", smask); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
320 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
321 png_destroy_read_struct(&png_ptr, &info_ptr, NULL); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
322 @@ -589,9 +598,9 @@ no_transparent_color_in_palette: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
323 /* if the image has color palette, copy the pallet of the image to |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
324 * create color map. |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
325 */ |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
326 - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
327 + if (color_type == PNG_COLOR_TYPE_PALETTE) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
328 ret = CreatePallet(image, png_ptr, info_ptr); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
329 - else if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
330 + else if (color_type == PNG_COLOR_TYPE_GRAY) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
331 ret = HPDF_Dict_AddName (image, "ColorSpace", "DeviceGray"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
332 else |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
333 ret = HPDF_Dict_AddName (image, "ColorSpace", "DeviceRGB"); |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
334 @@ -617,16 +626,16 @@ no_transparent_color_in_palette: |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
335 } |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
336 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
337 /* setting the info of the image. */ |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
338 - if (HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)info_ptr->width) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
339 + if (HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)width) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
340 != HPDF_OK) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
341 goto Exit; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
342 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
343 - if (HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)info_ptr->height) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
344 + if (HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)height) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
345 != HPDF_OK) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
346 goto Exit; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
347 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
348 if (HPDF_Dict_AddNumber (image, "BitsPerComponent", |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
349 - (HPDF_UINT)info_ptr->bit_depth) != HPDF_OK) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
350 + (HPDF_UINT)bit_depth) != HPDF_OK) |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
351 goto Exit; |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
352 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
353 /* clean up */ |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
354 -- |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
355 1.7.8.3 |
29d81342a180
package libharu: libpng 1.5 compatibility
Mark Brand <mabrand@mabrand.nl>
parents:
diff
changeset
|
356 |
2281
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
357 Wt requires the following patch for libHaru to render arcs correctly. |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
358 This patch has been tested against libhar 2.1.0 and 2.2.0. |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
359 (see http://redmine.webtoolkit.eu/projects/wt/wiki/LibHaru) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
360 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
361 diff -ur a/src/hpdf_page_operator.c b/src/hpdf_page_operator.c |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
362 --- a/src/hpdf_page_operator.c 2010-02-01 07:26:13.000000000 -0300 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
363 +++ b/src/hpdf_page_operator.c 2012-03-10 18:12:41.347028623 -0300 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
364 @@ -2192,7 +2192,7 @@ |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
365 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
366 HPDF_PTRACE ((" HPDF_Page_Arc\n")); |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
367 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
368 - if (ang1 >= ang2 || (ang2 - ang1) >= 360) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
369 + if (fabs(ang2 - ang1) >= 360) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
370 HPDF_RaiseError (page->error, HPDF_PAGE_OUT_OF_RANGE, 0); |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
371 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
372 if (ret != HPDF_OK) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
373 @@ -2205,10 +2205,10 @@ |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
374 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
375 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
376 for (;;) { |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
377 - if (ang2 - ang1 <= 90) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
378 + if (fabs(ang2 - ang1) <= 90) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
379 return InternalArc (page, x, y, ray, ang1, ang2, cont_flg); |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
380 else { |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
381 - HPDF_REAL tmp_ang = ang1 + 90; |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
382 + HPDF_REAL tmp_ang = (ang2 > ang1 ? ang1 + 90 : ang1 - 90); |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
383 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
384 if ((ret = InternalArc (page, x, y, ray, ang1, tmp_ang, cont_flg)) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
385 != HPDF_OK) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
386 @@ -2217,7 +2217,7 @@ |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
387 ang1 = tmp_ang; |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
388 } |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
389 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
390 - if (ang1 >= ang2) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
391 + if (fabs(ang1 - ang2) < 0.1) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
392 break; |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
393 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
394 cont_flg = HPDF_TRUE; |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
395 @@ -2280,7 +2280,11 @@ |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
396 pbuf = HPDF_FToA (pbuf, (HPDF_REAL)x0, eptr); |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
397 *pbuf++ = ' '; |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
398 pbuf = HPDF_FToA (pbuf, (HPDF_REAL)y0, eptr); |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
399 - pbuf = (char *)HPDF_StrCpy (pbuf, " m\012", eptr); |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
400 + |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
401 + if (attr->gmode == HPDF_GMODE_PATH_OBJECT) |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
402 + pbuf = (char *)HPDF_StrCpy (pbuf, " l\012", eptr); |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
403 + else |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
404 + pbuf = (char *)HPDF_StrCpy (pbuf, " m\012", eptr); |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
405 } |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
406 |
158396fb40ff
Some fixes in wt library:
Luis Saavedra <luis94855510@gmail.com>
parents:
2235
diff
changeset
|
407 pbuf = HPDF_FToA (pbuf, (HPDF_REAL)x1, eptr); |