summaryrefslogtreecommitdiffstats
path: root/sub/sub.c
diff options
context:
space:
mode:
Diffstat (limited to 'sub/sub.c')
-rw-r--r--sub/sub.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sub/sub.c b/sub/sub.c
index 66ee6ea42c..0dae442aee 100644
--- a/sub/sub.c
+++ b/sub/sub.c
@@ -221,11 +221,14 @@ static void render_object(struct osd_state *osd, struct osd_object *obj,
bool cached = false; // do we have a copy of all the image data?
+ if (out_imgs->format == SUBBITMAP_INDEXED && opts->sub_gray)
+ cached |= osd_conv_idx_to_gray(obj->cache[0], out_imgs);
+
if (formats[SUBBITMAP_RGBA] && out_imgs->format == SUBBITMAP_INDEXED)
- cached |= osd_conv_idx_to_rgba(obj->cache[0], out_imgs);
+ cached |= osd_conv_idx_to_rgba(obj->cache[1], out_imgs);
if (out_imgs->format == SUBBITMAP_RGBA && opts->sub_gauss != 0.0f)
- cached |= osd_conv_blur_rgba(obj->cache[1], out_imgs, opts->sub_gauss);
+ cached |= osd_conv_blur_rgba(obj->cache[2], out_imgs, opts->sub_gauss);
if (cached)
obj->cached = *out_imgs;