osd: use separate ASS_Renderer for each OSD object

This simplifies things, although it is slightly less efficient (probably
uses a bit more memory).

This also happens to fix that the OSC dropped the libass cache on every
frame.
This commit is contained in:
wm4
2013-12-15 15:04:49 +01:00
parent 3194058309
commit 78b5324eee
3 changed files with 53 additions and 46 deletions

View File

@@ -115,8 +115,10 @@ struct osd_object {
struct mp_osd_res vo_res;
// Internally used by osd_libass.c
struct ass_track *osd_track;
struct sub_bitmap *parts_cache;
struct ass_track *osd_track;
struct ass_renderer *osd_render;
struct ass_library *osd_ass_library;
};
struct osd_state {
@@ -155,10 +157,6 @@ struct osd_state {
// Internal to sub.c
struct mp_draw_sub_cache *draw_cache;
// Internally used by osd_libass.c
struct ass_renderer *osd_render;
struct ass_library *osd_ass_library;
};
// Start of OSD symbols in osd_font.pfb