作図ソフト dia の改良版
Revision | 8cfe5c001d6c9360cb85687df1c19f8892149e15 (tree) |
---|---|
Time | 2014-10-18 22:07:39 |
Author | Hans Breuer <hans@breu...> |
Commiter | Hans Breuer |
[transform] xfig: finally support object transformation via draw_object()
a given matrix was turned to a g_warning() in 2010 with commit
cd3b2398704b7c08b9c3e42cd32bac2c78dc7370 but forgotten in 2013 when
DiaTransformRenderer was introduced with commit
507f0cbc725115d14933372272bd67569bee367f
@@ -47,6 +47,7 @@ | ||
47 | 47 | #include "properties.h" |
48 | 48 | #include "dia_image.h" |
49 | 49 | #include "group.h" |
50 | +#include "diatransformrenderer.h" | |
50 | 51 | |
51 | 52 | #include "xfig.h" |
52 | 53 |
@@ -1064,13 +1065,20 @@ draw_object(DiaRenderer *self, | ||
1064 | 1065 | { |
1065 | 1066 | XfigRenderer *renderer = XFIG_RENDERER(self); |
1066 | 1067 | |
1067 | - if (!renderer->color_pass) | |
1068 | + if (renderer->color_pass) { | |
1069 | + /* color pass does not need transformation */ | |
1070 | + object->ops->draw(object, DIA_RENDERER(renderer)); | |
1071 | + } else { | |
1068 | 1072 | fprintf(renderer->file, "6 0 0 0 0\n"); |
1069 | - if (matrix) | |
1070 | - g_warning ("XFigRenderer no transformations"); | |
1071 | - object->ops->draw(object, DIA_RENDERER(renderer)); | |
1072 | - if (!renderer->color_pass) | |
1073 | + if (matrix) { | |
1074 | + DiaRenderer *tr = dia_transform_renderer_new (self); | |
1075 | + DIA_RENDERER_GET_CLASS(tr)->draw_object (tr, object, matrix); | |
1076 | + g_object_unref (tr); | |
1077 | + } else { | |
1078 | + object->ops->draw(object, DIA_RENDERER(renderer)); | |
1079 | + } | |
1073 | 1080 | fprintf(renderer->file, "-6\n"); |
1081 | + } | |
1074 | 1082 | } |
1075 | 1083 | |
1076 | 1084 | static gboolean |