summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ChangeLog.pre-1-06
-rw-r--r--ChangeLog.pre-1-106
-rw-r--r--ChangeLog.pre-1-26
-rw-r--r--ChangeLog.pre-1-46
-rw-r--r--ChangeLog.pre-1-66
-rw-r--r--ChangeLog.pre-1-86
-rw-r--r--pango/pangoft2.c53
8 files changed, 81 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index c342e34a..2c4df5b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-08-14 Sven Neumann <sven@gimp.org>
+
+ * pango/pangoft2.c (pango_ft2_render): composite glyphs over the
+ buffer instead of simply copying into it so glyphs with overlapping
+ ink rectangles do not overwrite each other.
+
Sun Aug 12 10:33:02 2001 Owen Taylor <otaylor@redhat.com>
* docs/Makefile.am pango/Makefile.am: Set GPATH to fix srcdir !=
diff --git a/ChangeLog.pre-1-0 b/ChangeLog.pre-1-0
index c342e34a..2c4df5b4 100644
--- a/ChangeLog.pre-1-0
+++ b/ChangeLog.pre-1-0
@@ -1,3 +1,9 @@
+2001-08-14 Sven Neumann <sven@gimp.org>
+
+ * pango/pangoft2.c (pango_ft2_render): composite glyphs over the
+ buffer instead of simply copying into it so glyphs with overlapping
+ ink rectangles do not overwrite each other.
+
Sun Aug 12 10:33:02 2001 Owen Taylor <otaylor@redhat.com>
* docs/Makefile.am pango/Makefile.am: Set GPATH to fix srcdir !=
diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10
index c342e34a..2c4df5b4 100644
--- a/ChangeLog.pre-1-10
+++ b/ChangeLog.pre-1-10
@@ -1,3 +1,9 @@
+2001-08-14 Sven Neumann <sven@gimp.org>
+
+ * pango/pangoft2.c (pango_ft2_render): composite glyphs over the
+ buffer instead of simply copying into it so glyphs with overlapping
+ ink rectangles do not overwrite each other.
+
Sun Aug 12 10:33:02 2001 Owen Taylor <otaylor@redhat.com>
* docs/Makefile.am pango/Makefile.am: Set GPATH to fix srcdir !=
diff --git a/ChangeLog.pre-1-2 b/ChangeLog.pre-1-2
index c342e34a..2c4df5b4 100644
--- a/ChangeLog.pre-1-2
+++ b/ChangeLog.pre-1-2
@@ -1,3 +1,9 @@
+2001-08-14 Sven Neumann <sven@gimp.org>
+
+ * pango/pangoft2.c (pango_ft2_render): composite glyphs over the
+ buffer instead of simply copying into it so glyphs with overlapping
+ ink rectangles do not overwrite each other.
+
Sun Aug 12 10:33:02 2001 Owen Taylor <otaylor@redhat.com>
* docs/Makefile.am pango/Makefile.am: Set GPATH to fix srcdir !=
diff --git a/ChangeLog.pre-1-4 b/ChangeLog.pre-1-4
index c342e34a..2c4df5b4 100644
--- a/ChangeLog.pre-1-4
+++ b/ChangeLog.pre-1-4
@@ -1,3 +1,9 @@
+2001-08-14 Sven Neumann <sven@gimp.org>
+
+ * pango/pangoft2.c (pango_ft2_render): composite glyphs over the
+ buffer instead of simply copying into it so glyphs with overlapping
+ ink rectangles do not overwrite each other.
+
Sun Aug 12 10:33:02 2001 Owen Taylor <otaylor@redhat.com>
* docs/Makefile.am pango/Makefile.am: Set GPATH to fix srcdir !=
diff --git a/ChangeLog.pre-1-6 b/ChangeLog.pre-1-6
index c342e34a..2c4df5b4 100644
--- a/ChangeLog.pre-1-6
+++ b/ChangeLog.pre-1-6
@@ -1,3 +1,9 @@
+2001-08-14 Sven Neumann <sven@gimp.org>
+
+ * pango/pangoft2.c (pango_ft2_render): composite glyphs over the
+ buffer instead of simply copying into it so glyphs with overlapping
+ ink rectangles do not overwrite each other.
+
Sun Aug 12 10:33:02 2001 Owen Taylor <otaylor@redhat.com>
* docs/Makefile.am pango/Makefile.am: Set GPATH to fix srcdir !=
diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8
index c342e34a..2c4df5b4 100644
--- a/ChangeLog.pre-1-8
+++ b/ChangeLog.pre-1-8
@@ -1,3 +1,9 @@
+2001-08-14 Sven Neumann <sven@gimp.org>
+
+ * pango/pangoft2.c (pango_ft2_render): composite glyphs over the
+ buffer instead of simply copying into it so glyphs with overlapping
+ ink rectangles do not overwrite each other.
+
Sun Aug 12 10:33:02 2001 Owen Taylor <otaylor@redhat.com>
* docs/Makefile.am pango/Makefile.am: Set GPATH to fix srcdir !=
diff --git a/pango/pangoft2.c b/pango/pangoft2.c
index 2c619aea..b44d11d3 100644
--- a/pango/pangoft2.c
+++ b/pango/pangoft2.c
@@ -351,14 +351,39 @@ pango_ft2_render (FT_Bitmap *bitmap,
{
p = bitmap->buffer +
(iyoff - face->glyph->bitmap_top + iy) * bitmap->pitch +
- ixoff +
- face->glyph->bitmap_left + x_start;
+ ixoff + face->glyph->bitmap_left +
+ x_start;
- q = face->glyph->bitmap.buffer + iy*face->glyph->bitmap.pitch;
+ q = face->glyph->bitmap.buffer +
+ iy * face->glyph->bitmap.pitch;
+
for (ix = x_start; ix < x_limit; ix++)
{
- *p = *q;
- q++;
+ switch (*q)
+ {
+ case 0:
+ break;
+ case 0xff:
+ *p = 0xff;
+ default:
+ switch (*p)
+ {
+ case 0:
+ *p = *q;
+ break;
+ case 0xff:
+ break;
+ default:
+ {
+ gushort pixel = *(q);
+ gushort s = (*p)+1;
+ *(p) = (pixel * (256-s) + s) >> 8;
+ }
+ break;
+ }
+ break;
+ }
+ q++;
p++;
}
}
@@ -367,17 +392,17 @@ pango_ft2_render (FT_Bitmap *bitmap,
{
p = bitmap->buffer +
(iyoff - face->glyph->bitmap_top + iy) * bitmap->pitch +
- ixoff +
- face->glyph->bitmap_left + x_start;
-
- q = face->glyph->bitmap.buffer + iy*face->glyph->bitmap.pitch;
+ ixoff + face->glyph->bitmap_left +
+ x_start;
+
+ q = face->glyph->bitmap.buffer +
+ iy*face->glyph->bitmap.pitch;
+
for (ix = x_start; ix < x_limit; ix++)
{
- if ((*q) & (1 << (7 - (ix%8))))
- *p = 0;
- else
- *p = MIN (*p, 0xFF);
- if ((ix%8) == 7)
+ if ((*q) & (1 << (7 - (ix % 8))))
+ *p = 0xff;
+ if ((ix % 8) == 7)
q++;
p++;
}