+ "gbrp": {
+ "i8": {
+ "r": " int g = *gip++, b = *bip++, r = *rip++;",
+ "w": " *gop++ = g; *bop++ = b; *rop++ = r;",
+ },
+ "i16": {
+ "r": " int ig = *gip++, g = (ig<<8) | ig, ib = *bip++, b = (ib<<8) | ib," +
+ " ir = *rip++, r = (ir<<8) | ir;",
+ "w": " *gop++ = g >> 8; *bop++ = b >> 8; *rop++ = r >> 8;",
+ },
+ "fp": {
+ "r": " float g = *gip++/255.f, b = *bip++/255.f, r = *rip++/255.f;",
+ "w": " *gop++ = clp(256,g); *bop++ = clp(256,b); *rop++ = clp(256,r);",
+ },
+ },
+
+ "grey8": {
+ "i8": {
+ "r": " int32_t y = *inp++, u = 0x80, v = 0x80;",
+ "w": " *out++ = y; (void)u; (void)v;",
+ },
+ "i16": {
+ "r": " int32_t iy = *inp++, y = (iy<<8) | iy, u = 0x8000, v = 0x8000;",
+ "w": " *out++ = y>>8; (void)u; (void)v;",
+ },
+ },
+
+ "grey16": {
+ "i8": {
+ "r": " int32_t y = *inp++>>8, u = 0x80, v = 0x80;",
+ "w": " *out++ = (y<<8) | y; (void)u; (void)v;",
+ },
+ "i16": {
+ "r": " int32_t y = *inp++, u = 0x8000, v = 0x8000;",
+ "w": " *out++ = y; (void)u; (void)v;",
+ },
+ },
+