]> www.fi.muni.cz Git - evince.git/blobdiff - backend/dvi/cairo-device.c
[dvi] Test glyph->data for MDVI_GLYPH_EMPTY
[evince.git] / backend / dvi / cairo-device.c
index 9a42e7b5a9326874fe76db6d6848d545cc6e599a..47425cad7e0be21a503a449c8fff618f525c35bb 100644 (file)
@@ -13,7 +13,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #include <config.h>
  */
 
 #include <config.h>
@@ -55,7 +55,9 @@ dvi_cairo_draw_glyph (DviContext  *dvi,
 
        glyph = &ch->grey;
 
 
        glyph = &ch->grey;
 
-       isbox = (glyph->data == NULL || (dvi->params.flags & MDVI_PARAM_CHARBOXES));
+       isbox = (glyph->data == NULL ||
+                (dvi->params.flags & MDVI_PARAM_CHARBOXES) ||
+                MDVI_GLYPH_ISEMPTY (glyph->data));
 
        x = - glyph->x + x0 + cairo_device->xmargin;
        y = - glyph->y + y0 + cairo_device->ymargin;
 
        x = - glyph->x + x0 + cairo_device->xmargin;
        y = - glyph->y + y0 + cairo_device->ymargin;
@@ -247,16 +249,14 @@ dvi_cairo_put_pixel (void *image, int x, int y, Ulong color)
 {
        cairo_surface_t *surface;
        gint             rowstride;
 {
        cairo_surface_t *surface;
        gint             rowstride;
-       guchar          *p;
+       guint32         *p;
 
        surface = (cairo_surface_t *) image;
 
        rowstride = cairo_image_surface_get_stride (surface);
 
        surface = (cairo_surface_t *) image;
 
        rowstride = cairo_image_surface_get_stride (surface);
-       p = cairo_image_surface_get_data (surface) + y * rowstride + x * 4;
+       p = (guint32*) (cairo_image_surface_get_data (surface) + y * rowstride + x * 4);
 
 
-       p[2] = (color >> 16) & 0xff;
-       p[1] = (color >> 8) & 0xff;
-       p[0] = (color >> 0) & 0xff;
+       *p = color;
 }
 
 static void
 }
 
 static void