diff options
Diffstat (limited to 'video/out/gl_osd.h')
-rw-r--r-- | video/out/gl_osd.h | 39 |
1 files changed, 8 insertions, 31 deletions
diff --git a/video/out/gl_osd.h b/video/out/gl_osd.h index 5c34911e22..0acd200ab4 100644 --- a/video/out/gl_osd.h +++ b/video/out/gl_osd.h @@ -7,38 +7,15 @@ #include "gl_utils.h" #include "sub/osd.h" -struct mpgl_osd_part { - enum sub_bitmap_format format; - int bitmap_id, bitmap_pos_id; - GLuint texture; - int w, h; - GLuint buffer; - int num_vertices; - void *vertices; - struct bitmap_packer *packer; -}; - -struct mpgl_osd { - struct mp_log *log; - struct osd_state *osd; - GL *gl; - bool use_pbo; - bool scaled; - struct mpgl_osd_part *parts[MAX_OSD_PARTS]; - const struct osd_fmt_entry *fmt_table; - bool formats[SUBBITMAP_COUNT]; - struct gl_vao vao; - GLuint *programs; // SUBBITMAP_COUNT elements - // temporary - float offset[2]; - void *scratch; -}; - -struct mpgl_osd *mpgl_osd_init(GL *gl, struct mp_log *log, struct osd_state *osd, - GLuint *programs); +struct mpgl_osd *mpgl_osd_init(GL *gl, struct mp_log *log, struct osd_state *osd); void mpgl_osd_destroy(struct mpgl_osd *ctx); -void mpgl_osd_draw(struct mpgl_osd *ctx, struct mp_osd_res res, double pts, - int stereo_mode); +void mpgl_osd_set_options(struct mpgl_osd *ctx, bool pbo); + +void mpgl_osd_generate(struct mpgl_osd *ctx, struct mp_osd_res res, double pts, + int stereo_mode); +enum sub_bitmap_format mpgl_osd_get_part_format(struct mpgl_osd *ctx, int index); +struct gl_vao *mpgl_osd_get_vao(struct mpgl_osd *ctx); +void mpgl_osd_draw_part(struct mpgl_osd *ctx, int vp_w, int vp_h, int index); #endif |