diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | ChangeLog.pre-1-10 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-1-8 | 8 | ||||
-rw-r--r-- | pango/makefile.msc | 2 | ||||
-rw-r--r-- | pango/pangowin32.c | 35 | ||||
-rw-r--r-- | pango/pangowin32.def | 1 | ||||
-rw-r--r-- | pango/pangowin32.h | 6 |
7 files changed, 68 insertions, 0 deletions
@@ -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 |