static __DRIimage * dri2_from_names(__DRIscreen *screen, int width, int height, int format, int *names, int num_names, int *strides, int *offsets, void *loaderPrivate) { __DRIimage *img; int stride, dri_components; if (num_names != 1) return NULL; if (offsets[0] != 0) return NULL; format = convert_fourcc(format, &dri_components); if (format == -1) return NULL; /* Strides are in bytes not pixels. */ stride = strides[0] /4; img = dri2_create_image_from_name(screen, width, height, format, names[0], stride, loaderPrivate); if (img == NULL) return NULL; img->dri_components = dri_components; return img; }
static __DRIimage * dri2_from_names(__DRIscreen *screen, int width, int height, int format, int *names, int num_names, int *strides, int *offsets, void *loaderPrivate) { __DRIimage *img; int stride, dri_components; if (num_names != 1) return NULL; if (offsets[0] != 0) return NULL; switch(format) { case __DRI_IMAGE_FOURCC_RGB565: format = __DRI_IMAGE_FORMAT_RGB565; dri_components = __DRI_IMAGE_COMPONENTS_RGB; break; case __DRI_IMAGE_FOURCC_ARGB8888: format = __DRI_IMAGE_FORMAT_ARGB8888; dri_components = __DRI_IMAGE_COMPONENTS_RGBA; break; case __DRI_IMAGE_FOURCC_XRGB8888: format = __DRI_IMAGE_FORMAT_XRGB8888; dri_components = __DRI_IMAGE_COMPONENTS_RGB; break; case __DRI_IMAGE_FOURCC_ABGR8888: format = __DRI_IMAGE_FORMAT_ABGR8888; dri_components = __DRI_IMAGE_COMPONENTS_RGBA; break; case __DRI_IMAGE_FOURCC_XBGR8888: format = __DRI_IMAGE_FORMAT_XBGR8888; dri_components = __DRI_IMAGE_COMPONENTS_RGB; break; default: return NULL; } /* Strides are in bytes not pixels. */ stride = strides[0] /4; img = dri2_create_image_from_name(screen, width, height, format, names[0], stride, loaderPrivate); if (img == NULL) return NULL; img->dri_components = dri_components; return img; }