data->xSrc, data->ySrc,
data->width, data->height);
- maskClass = SOURCE_IMAGE_CLASS_NEITHER;
+ maskClass = SOURCE_IMAGE_CLASS_UNKNOWN;
if (data->mask)
{
maskClass = _pixman_image_classify (data->mask,
{
source_image_t *pict = &image->source;
- if (pict->class != SOURCE_IMAGE_CLASS_UNKNOWN)
- return pict->class;
-
- pict->class = SOURCE_IMAGE_CLASS_NEITHER;
+ pict->class = SOURCE_IMAGE_CLASS_UNKNOWN;
if (pict->common.type == SOLID)
{
if (pict->common.transform)
{
if (!pixman_transform_point_3d (pict->common.transform, &v))
- return SOURCE_IMAGE_CLASS_UNKNOWN;
+ {
+ pict->class = SOURCE_IMAGE_CLASS_UNKNOWN;
+ goto out;
+ }
}
factors[i] = ((a * v.vector[0] + b * v.vector[1]) >> 16) + off;
pict->class = SOURCE_IMAGE_CLASS_VERTICAL;
}
+out:
return pict->class;
}
if (image->common.classify)
return image->common.classify (image, x, y, width, height);
else
- return SOURCE_IMAGE_CLASS_NEITHER;
+ return SOURCE_IMAGE_CLASS_UNKNOWN;
}
/* Ref Counting */
SOURCE_IMAGE_CLASS_UNKNOWN,
SOURCE_IMAGE_CLASS_HORIZONTAL,
SOURCE_IMAGE_CLASS_VERTICAL,
- SOURCE_IMAGE_CLASS_NEITHER
} source_pict_class_t;
typedef source_pict_class_t (* classify_func_t) (pixman_image_t *image,