+
+ /* some layers (such as circle) don't touch pixels that aren't
+ * part of the circle, so they don't get blended correctly when
+ * using a straight blend. so we encapsulate the circle, and the
+ * encapsulation layer takes care of the transparent pixels
+ * for us. if we do that for all layers, however, then the
+ * distortion layers no longer work, since they have no
+ * context to work on. the Layer::reads_context() method
+ * returns true for layers which need to be able to see
+ * their context. we can't encapsulate those.
+ */
+ if (composite &&
+ Color::is_straight(composite->get_blend_method()) &&
+ !composite->reads_context())