set_direct_pix_conv - turn conditionals into switches

This commit is contained in:
twinaphex 2015-08-31 14:15:28 +02:00
parent 0b4ba8443f
commit 081d5b5074

View File

@ -116,44 +116,88 @@ static bool set_direct_pix_conv(struct scaler_ctx *ctx)
switch (ctx->in_fmt) switch (ctx->in_fmt)
{ {
case SCALER_FMT_0RGB1555: case SCALER_FMT_0RGB1555:
if (ctx->out_fmt == SCALER_FMT_ARGB8888) switch (ctx->out_fmt)
ctx->direct_pixconv = conv_0rgb1555_argb8888; {
else if (ctx->out_fmt == SCALER_FMT_RGB565) case SCALER_FMT_ARGB8888:
ctx->direct_pixconv = conv_0rgb1555_rgb565; ctx->direct_pixconv = conv_0rgb1555_argb8888;
else if (ctx->out_fmt == SCALER_FMT_BGR24) break;
ctx->direct_pixconv = conv_0rgb1555_bgr24; case SCALER_FMT_RGB565:
ctx->direct_pixconv = conv_0rgb1555_rgb565;
break;
case SCALER_FMT_BGR24:
ctx->direct_pixconv = conv_0rgb1555_bgr24;
break;
default:
break;
}
break; break;
case SCALER_FMT_RGB565: case SCALER_FMT_RGB565:
if (ctx->out_fmt == SCALER_FMT_ARGB8888) switch (ctx->out_fmt)
ctx->direct_pixconv = conv_rgb565_argb8888; {
else if (ctx->out_fmt == SCALER_FMT_BGR24) case SCALER_FMT_ARGB8888:
ctx->direct_pixconv = conv_rgb565_bgr24; ctx->direct_pixconv = conv_rgb565_argb8888;
else if (ctx->out_fmt == SCALER_FMT_0RGB1555) break;
ctx->direct_pixconv = conv_rgb565_0rgb1555; case SCALER_FMT_BGR24:
ctx->direct_pixconv = conv_rgb565_bgr24;
break;
case SCALER_FMT_0RGB1555:
ctx->direct_pixconv = conv_rgb565_0rgb1555;
break;
default:
break;
}
break; break;
case SCALER_FMT_BGR24: case SCALER_FMT_BGR24:
if (ctx->out_fmt == SCALER_FMT_ARGB8888) switch (ctx->out_fmt)
ctx->direct_pixconv = conv_bgr24_argb8888; {
case SCALER_FMT_ARGB8888:
ctx->direct_pixconv = conv_bgr24_argb8888;
break;
default:
break;
}
break; break;
case SCALER_FMT_ARGB8888: case SCALER_FMT_ARGB8888:
if (ctx->out_fmt == SCALER_FMT_0RGB1555) switch (ctx->out_fmt)
ctx->direct_pixconv = conv_argb8888_0rgb1555; {
else if (ctx->out_fmt == SCALER_FMT_BGR24) case SCALER_FMT_0RGB1555:
ctx->direct_pixconv = conv_argb8888_bgr24; ctx->direct_pixconv = conv_argb8888_0rgb1555;
else if (ctx->out_fmt == SCALER_FMT_ABGR8888) break;
ctx->direct_pixconv = conv_argb8888_abgr8888; case SCALER_FMT_BGR24:
else if (ctx->out_fmt == SCALER_FMT_RGBA4444) ctx->direct_pixconv = conv_argb8888_bgr24;
ctx->direct_pixconv = conv_argb8888_rgba4444; break;
case SCALER_FMT_ABGR8888:
ctx->direct_pixconv = conv_argb8888_abgr8888;
break;
case SCALER_FMT_RGBA4444:
ctx->direct_pixconv = conv_argb8888_rgba4444;
break;
default:
break;
}
break; break;
case SCALER_FMT_YUYV: case SCALER_FMT_YUYV:
if (ctx->out_fmt == SCALER_FMT_ARGB8888) switch (ctx->out_fmt)
ctx->direct_pixconv = conv_yuyv_argb8888; {
case SCALER_FMT_ARGB8888:
ctx->direct_pixconv = conv_yuyv_argb8888;
break;
default:
break;
}
break; break;
case SCALER_FMT_RGBA4444: case SCALER_FMT_RGBA4444:
if (ctx->out_fmt == SCALER_FMT_ARGB8888) switch (ctx->out_fmt)
ctx->direct_pixconv = conv_rgba4444_argb8888; {
else if (ctx->out_fmt == SCALER_FMT_RGB565) case SCALER_FMT_ARGB8888:
ctx->direct_pixconv = conv_rgba4444_rgb565; ctx->direct_pixconv = conv_rgba4444_argb8888;
break;
case SCALER_FMT_RGB565:
ctx->direct_pixconv = conv_rgba4444_rgb565;
break;
default:
break;
}
break; break;
case SCALER_FMT_ABGR8888: case SCALER_FMT_ABGR8888:
/* FIXME/TODO */ /* FIXME/TODO */