int i;
scanStoreProc store;
scanFetchProc fetchSrc = NULL, fetchMask = NULL, fetchDest = NULL;
- unsigned int srcClass = SOURCE_IMAGE_CLASS_UNKNOWN;
- unsigned int maskClass = SOURCE_IMAGE_CLASS_UNKNOWN;
uint32_t *bits;
int32_t stride;
int xoff, yoff;
+ source_pict_class_t srcClass, maskClass;
+ srcClass = _pixman_image_classify (data->src,
+ data->xSrc, data->ySrc,
+ data->width, data->height);
+
+ maskClass = SOURCE_IMAGE_CLASS_NEITHER;
+ if (data->mask)
+ {
+ maskClass = _pixman_image_classify (data->mask,
+ data->xSrc, data->ySrc,
+ data->width, data->height);
+ }
+
if (data->op == PIXMAN_OP_CLEAR)
fetchSrc = NULL;
else if (IS_SOURCE_IMAGE (data->src))
{
fetchSrc = get_fetch_source_pict(wide);
- srcClass = _pixman_image_classify (data->src,
- data->xSrc, data->ySrc,
- data->width, data->height);
}
else
{
bits->height == 1)
{
fetchSrc = get_fetch_solid(wide);
- srcClass = SOURCE_IMAGE_CLASS_HORIZONTAL;
}
else if (!bits->common.transform && bits->common.filter != PIXMAN_FILTER_CONVOLUTION
&& bits->common.repeat != PIXMAN_REPEAT_PAD && bits->common.repeat != PIXMAN_REPEAT_REFLECT)
if (IS_SOURCE_IMAGE (data->mask))
{
fetchMask = (scanFetchProc)pixmanFetchSourcePict;
- maskClass = _pixman_image_classify (data->mask,
- data->xMask, data->yMask,
- data->width, data->height);
}
else
{
bits->width == 1 && bits->height == 1)
{
fetchMask = get_fetch_solid(wide);
- maskClass = SOURCE_IMAGE_CLASS_HORIZONTAL;
}
else if (!bits->common.transform && bits->common.filter != PIXMAN_FILTER_CONVOLUTION
&& bits->common.repeat != PIXMAN_REPEAT_PAD && bits->common.repeat != PIXMAN_REPEAT_REFLECT)