]> gitweb.michael.orlitzky.com - libsvgtiny.git/commitdiff
examples/svgtiny_display_x11.c: use opacity information
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 16 Nov 2023 01:39:28 +0000 (20:39 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 20 Nov 2023 16:42:58 +0000 (11:42 -0500)
examples/svgtiny_display_x11.c

index 291449d8c31eb1dcd78084ef66039f245e9918d8..c2c0aad8d20491050318a7a673ba18ee6d54c3ef 100644 (file)
@@ -345,7 +345,7 @@ void event_diagram_expose(const XExposeEvent *expose_event)
                return;
        }
 
-       cairo_set_source_rgb(cr, 1, 1, 1);
+       cairo_set_source_rgba(cr, 1, 1, 1, 1);
        cairo_paint(cr);
 
        for (i = 0; i != diagram->shape_count; i++) {
@@ -353,10 +353,11 @@ void event_diagram_expose(const XExposeEvent *expose_event)
                        render_path(cr, scale, &diagram->shape[i]);
 
                } else if (diagram->shape[i].text) {
-                       cairo_set_source_rgb(cr,
+                       cairo_set_source_rgba(cr,
                                svgtiny_RED(diagram->shape[i].stroke) / 255.0,
                                svgtiny_GREEN(diagram->shape[i].stroke) / 255.0,
-                               svgtiny_BLUE(diagram->shape[i].stroke) / 255.0);
+                               svgtiny_BLUE(diagram->shape[i].stroke) / 255.0,
+                               diagram->shape[i].stroke_opacity);
                        cairo_move_to(cr,
                                        scale * diagram->shape[i].text_x,
                                        scale * diagram->shape[i].text_y);
@@ -420,17 +421,19 @@ void render_path(cairo_t *cr, float scale, struct svgtiny_shape *path)
                }
        }
        if (path->fill != svgtiny_TRANSPARENT) {
-               cairo_set_source_rgb(cr,
+               cairo_set_source_rgba(cr,
                                svgtiny_RED(path->fill) / 255.0,
                                svgtiny_GREEN(path->fill) / 255.0,
-                               svgtiny_BLUE(path->fill) / 255.0);
+                               svgtiny_BLUE(path->fill) / 255.0,
+                               path->fill_opacity);
                cairo_fill_preserve(cr);
        }
        if (path->stroke != svgtiny_TRANSPARENT) {
-               cairo_set_source_rgb(cr,
+               cairo_set_source_rgba(cr,
                                svgtiny_RED(path->stroke) / 255.0,
                                svgtiny_GREEN(path->stroke) / 255.0,
-                               svgtiny_BLUE(path->stroke) / 255.0);
+                               svgtiny_BLUE(path->stroke) / 255.0,
+                               path->stroke_opacity);
                cairo_set_line_width(cr, scale * path->stroke_width);
                cairo_stroke_preserve(cr);
        }