Siarhei Siamashka <[email protected]> writes: > As there are no more comments/opinions, I'm going to prepare some more or less > final patches based on what we have now. They will be posted to the mailing > list shortly.
I noticed this: > @@ -745,7 +745,11 @@ pixman_image_composite32 (pixman_op_t op, > > if ((mask_flags & BOTH) == BOTH) > mask_flags |= FAST_PATH_IS_OPAQUE; > - > + > + src->common.flags = src_flags; > + if (mask) > + mask->common.flags = mask_flags; > + > /* > * Check if we can replace our operator by a simpler one > * if the src or dest are opaque. The output operator should be That can't be correct, because some of the flags are computed on the fly. If you store those in the image, then they will survive until next time that image is used, when they may no longer apply. I'm not sure how to get the full set of flags passed to the general code in a nice way. One hack would be to just store them in global variables, but that's rather ugly. Another possibility might be to resurrect the idea of a composite_args_t struct containing the arguments that are currently passed to pixman_composite_func_t. That would make it cheap to pass the full set of flags. That's a large patch though, and still somewhat ugly. It also has unknown performance implications. Soren _______________________________________________ Pixman mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/pixman
