diff options
author | wm4 <wm4@nowhere> | 2012-10-03 18:25:41 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-10-16 07:26:31 +0200 |
commit | cadff3eec75bdd81fb0d18cd0ac029faa3c318d2 (patch) | |
tree | c48914d7a76984db394117c364b8660088181c41 /libvo/gl_osd.h | |
parent | 8f8f6e6d9d27eef37640b363214a775647a0f2f4 (diff) | |
download | mpv-cadff3eec75bdd81fb0d18cd0ac029faa3c318d2.tar.bz2 mpv-cadff3eec75bdd81fb0d18cd0ac029faa3c318d2.tar.xz |
vo_gl3: move OSD code to gl_osd.c
Other OpenGL-using VOs can use this.
gl_osd.c includes some code for vo_gl.c. The next commit actually
makes use of it.
Diffstat (limited to 'libvo/gl_osd.h')
-rw-r--r-- | libvo/gl_osd.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/libvo/gl_osd.h b/libvo/gl_osd.h new file mode 100644 index 0000000000..baebc3311c --- /dev/null +++ b/libvo/gl_osd.h @@ -0,0 +1,41 @@ +#ifndef MPLAYER_GL_OSD_H +#define MPLAYER_GL_OSD_H + +#include <stdbool.h> +#include <inttypes.h> + +#include "gl_common.h" +#include "sub/sub.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 { + GL *gl; + bool use_pbo; + struct mpgl_osd_part *parts[MAX_OSD_PARTS]; + const struct osd_fmt_entry *fmt_table; + void *scratch; +}; + +struct mpgl_osd *mpgl_osd_init(GL *gl, bool legacy); +void mpgl_osd_destroy(struct mpgl_osd *ctx); + +bool mpgl_osd_query_format(struct mpgl_osd *ctx, int osd_format); + +void mpgl_osd_draw_legacy(struct mpgl_osd *ctx, struct sub_bitmaps *b); +struct mpgl_osd_part *mpgl_osd_generate(struct mpgl_osd *ctx, + struct sub_bitmaps *b); + +void mpgl_osd_gl_set_state(struct mpgl_osd *ctx, struct mpgl_osd_part *p); +void mpgl_osd_gl_unset_state(struct mpgl_osd *ctx, struct mpgl_osd_part *p); + +#endif |