static void unpack_grey8(struct pixel *unp, void *pptr, int count);
static void unpack_rgb24(struct pixel *unp, void *pptr, int count);
static void unpack_rgba32(struct pixel *unp, void *pptr, int count);
+static void unpack_bgra32(struct pixel *unp, void *pptr, int count);
static void unpack_greyf(struct pixel *unp, void *pptr, int count);
static void unpack_rgbf(struct pixel *unp, void *pptr, int count);
static void unpack_rgbaf(struct pixel *unp, void *pptr, int count);
static void pack_grey8(void *pptr, struct pixel *unp, int count);
static void pack_rgb24(void *pptr, struct pixel *unp, int count);
static void pack_rgba32(void *pptr, struct pixel *unp, int count);
+static void pack_bgra32(void *pptr, struct pixel *unp, int count);
static void pack_greyf(void *pptr, struct pixel *unp, int count);
static void pack_rgbf(void *pptr, struct pixel *unp, int count);
static void pack_rgbaf(void *pptr, struct pixel *unp, int count);
unpack_grey8,
unpack_rgb24,
unpack_rgba32,
+ unpack_bgra32,
unpack_greyf,
unpack_rgbf,
unpack_rgbaf,
pack_grey8,
pack_rgb24,
pack_rgba32,
+ pack_bgra32,
pack_greyf,
pack_rgbf,
pack_rgbaf,
}
}
+static void unpack_bgra32(struct pixel *unp, void *pptr, int count)
+{
+ int i;
+ unsigned char *pix = pptr;
+
+ for(i=0; i<count; i++) {
+ unp->b = (float)*pix++ / 255.0;
+ unp->g = (float)*pix++ / 255.0;
+ unp->r = (float)*pix++ / 255.0;
+ unp->a = (float)*pix++ / 255.0;
+ unp++;
+ }
+}
+
static void unpack_greyf(struct pixel *unp, void *pptr, int count)
{
int i;
}
}
+static void pack_bgra32(void *pptr, struct pixel *unp, int count)
+{
+ int i;
+ unsigned char *pix = pptr;
+
+ for(i=0; i<count; i++) {
+ int r = (int)(unp->r * 255.0);
+ int g = (int)(unp->g * 255.0);
+ int b = (int)(unp->b * 255.0);
+ int a = (int)(unp->a * 255.0);
+
+ *pix++ = CLAMP(b, 0, 255);
+ *pix++ = CLAMP(g, 0, 255);
+ *pix++ = CLAMP(r, 0, 255);
+ *pix++ = CLAMP(a, 0, 255);
+ unp++;
+ }
+}
+
static void pack_greyf(void *pptr, struct pixel *unp, int count)
{
int i;