summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--ChangeLog.pre-1-108
-rw-r--r--ChangeLog.pre-1-88
-rw-r--r--pango/makefile.msc2
-rw-r--r--pango/pangowin32.c35
-rw-r--r--pango/pangowin32.def1
-rw-r--r--pango/pangowin32.h6
7 files changed, 68 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 818a8ceb..e1e56999 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-11-21 Hans Breuer <hans@breuer.org>
+
+ * pango/makefile.msc : updated
+
+ * pango/pangowin32.[ch] pango/pangowin32.def : implement
+ pango_win32_render_transformed() by using the transformation
+ capabilities of GDI (not available on win9x)
+
Sun Nov 21 11:43:00 2004 Owen Taylor <otaylor@redhat.com>
* pango/break.c: Turn off backspace-deletes-character behavior
diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10
index 818a8ceb..e1e56999 100644
--- a/ChangeLog.pre-1-10
+++ b/ChangeLog.pre-1-10
@@ -1,3 +1,11 @@
+2004-11-21 Hans Breuer <hans@breuer.org>
+
+ * pango/makefile.msc : updated
+
+ * pango/pangowin32.[ch] pango/pangowin32.def : implement
+ pango_win32_render_transformed() by using the transformation
+ capabilities of GDI (not available on win9x)
+
Sun Nov 21 11:43:00 2004 Owen Taylor <otaylor@redhat.com>
* pango/break.c: Turn off backspace-deletes-character behavior
diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8
index 818a8ceb..e1e56999 100644
--- a/ChangeLog.pre-1-8
+++ b/ChangeLog.pre-1-8
@@ -1,3 +1,11 @@
+2004-11-21 Hans Breuer <hans@breuer.org>
+
+ * pango/makefile.msc : updated
+
+ * pango/pangowin32.[ch] pango/pangowin32.def : implement
+ pango_win32_render_transformed() by using the transformation
+ capabilities of GDI (not available on win9x)
+
Sun Nov 21 11:43:00 2004 Owen Taylor <otaylor@redhat.com>
* pango/break.c: Turn off backspace-deletes-character behavior
diff --git a/pango/makefile.msc b/pango/makefile.msc
index 8f52b053..ffc1c3f0 100644
--- a/pango/makefile.msc
+++ b/pango/makefile.msc
@@ -99,6 +99,7 @@ OBJECTS = \
pango-item.obj \
pango-markup.obj \
pango-layout.obj \
+ pango-renderer.obj \
pango-script.obj \
pango-tabs.obj \
pango-utils.obj \
@@ -131,6 +132,7 @@ OBJECTS = \
pangowin32.obj \
pangowin32-fontcache.obj \
pangowin32-fontmap.obj \
+# pangowin32-render.obj \
basic-win32.obj
!ENDIF
diff --git a/pango/pangowin32.c b/pango/pangowin32.c
index e3f62a10..b63767e2 100644
--- a/pango/pangowin32.c
+++ b/pango/pangowin32.c
@@ -396,6 +396,41 @@ pango_win32_render (HDC hdc,
g_free (dX);
}
+void
+pango_win32_render_transformed (HDC hdc,
+ const PangoMatrix *matrix,
+ PangoFont *font,
+ PangoGlyphString *glyphs,
+ int x,
+ int y)
+{
+ XFORM xForm;
+ XFORM xFormPrev = {1.0, 0.0, 0.0, 1.0, 0.0, 0.0};
+ int mode = GetGraphicsMode (hdc);
+
+ if (!SetGraphicsMode (hdc, GM_ADVANCED))
+ g_warning ("SetGraphicsMode() failed");
+ else if (!GetWorldTransform (hdc, &xFormPrev))
+ g_warning ("GetWorldTransform() failed");
+ else if (matrix)
+ {
+ xForm.eM11 = matrix->xx;
+ xForm.eM12 = matrix->xy;
+ xForm.eM21 = matrix->yx;
+ xForm.eM22 = matrix->yy;
+ xForm.eDx = matrix->x0;
+ xForm.eDy = matrix->y0;
+ if (!SetWorldTransform (hdc, &xForm))
+ g_warning ("GetWorldTransform() failed");
+ }
+
+ pango_win32_render (hdc, font, glyphs, x/PANGO_SCALE, y/PANGO_SCALE);
+
+ /* restore */
+ SetWorldTransform (hdc, &xFormPrev);
+ SetGraphicsMode (hdc, mode);
+}
+
static void
pango_win32_font_get_glyph_extents (PangoFont *font,
PangoGlyph glyph,
diff --git a/pango/pangowin32.def b/pango/pangowin32.def
index 0754abcc..0e6c7e63 100644
--- a/pango/pangowin32.def
+++ b/pango/pangowin32.def
@@ -22,3 +22,4 @@ EXPORTS
pango_win32_render_layout
pango_win32_render_layout_line
pango_win32_shutdown_display
+ pango_win32_render_transformed
diff --git a/pango/pangowin32.h b/pango/pangowin32.h
index ece1b829..fb56d7f0 100644
--- a/pango/pangowin32.h
+++ b/pango/pangowin32.h
@@ -57,6 +57,12 @@ void pango_win32_render_layout (HDC hdc,
int x,
int y);
+void pango_win32_render_transformed (HDC hdc,
+ const PangoMatrix *matrix,
+ PangoFont *font,
+ PangoGlyphString *glyphs,
+ int x,
+ int y);
#ifdef PANGO_ENABLE_ENGINE