mirror of
https://github.com/mpv-player/mpv
synced 2024-12-15 11:25:10 +00:00
Allow specifying a custom (ppm) texture for texture unit 3
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16594 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
d29c9ddf19
commit
e74494dd4d
@ -76,6 +76,8 @@ static GLuint fragprog;
|
||||
static GLuint uvtexs[2];
|
||||
static GLuint lookupTex;
|
||||
static char *custom_prog;
|
||||
static char *custom_tex;
|
||||
static int custom_tlin;
|
||||
|
||||
static int int_pause;
|
||||
static int eq_bri = 0;
|
||||
@ -174,6 +176,26 @@ static void update_yuvconv() {
|
||||
ProgramEnvParameter4f(GL_FRAGMENT_PROGRAM, 0,
|
||||
1.0 / texture_width, 1.0 / texture_height, 0, 0);
|
||||
}
|
||||
if (custom_tex) {
|
||||
FILE *f = fopen(custom_tex, "r");
|
||||
if (!f)
|
||||
mp_msg(MSGT_VO, MSGL_WARN,
|
||||
"[gl] Could not read customtex %s\n", custom_tex);
|
||||
else {
|
||||
int width, height, maxval;
|
||||
ActiveTexture(GL_TEXTURE3);
|
||||
if (glCreatePPMTex(GL_TEXTURE_2D, 3,
|
||||
custom_tlin?GL_LINEAR:GL_NEAREST,
|
||||
f, &width, &height, &maxval))
|
||||
ProgramEnvParameter4f(GL_FRAGMENT_PROGRAM, 1,
|
||||
1.0 / width, 1.0 / height, 1.0 / maxval, 0);
|
||||
else
|
||||
mp_msg(MSGT_VO, MSGL_WARN,
|
||||
"[gl] Error parsing customtex %s\n", custom_tex);
|
||||
fclose(f);
|
||||
ActiveTexture(GL_TEXTURE0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -652,6 +674,8 @@ uninit(void)
|
||||
releaseGlContext(&gl_vinfo, &gl_context);
|
||||
if (custom_prog) free(custom_prog);
|
||||
custom_prog = NULL;
|
||||
if (custom_tex) free(custom_tex);
|
||||
custom_tex = NULL;
|
||||
#ifdef GL_WIN32
|
||||
vo_w32_uninit();
|
||||
#else
|
||||
@ -670,6 +694,8 @@ static opt_t subopts[] = {
|
||||
{"glfinish", OPT_ARG_BOOL, &use_glFinish, NULL},
|
||||
{"swapinterval", OPT_ARG_INT, &swap_interval,NULL},
|
||||
{"customprog", OPT_ARG_MSTRZ,&custom_prog, NULL},
|
||||
{"customtex", OPT_ARG_MSTRZ,&custom_tex, NULL},
|
||||
{"customtlin", OPT_ARG_BOOL, &custom_tlin, NULL},
|
||||
{NULL}
|
||||
};
|
||||
|
||||
@ -686,6 +712,8 @@ static int preinit(const char *arg)
|
||||
swap_interval = 1;
|
||||
slice_height = 4;
|
||||
custom_prog = NULL;
|
||||
custom_tex = NULL;
|
||||
custom_tlin = 1;
|
||||
if (subopt_parse(arg, subopts) != 0) {
|
||||
mp_msg(MSGT_VO, MSGL_FATAL,
|
||||
"\n-vo gl command line help:\n"
|
||||
@ -719,6 +747,8 @@ static int preinit(const char *arg)
|
||||
" use a custom YUV conversion program\n"
|
||||
" customtex=<filename>\n"
|
||||
" use a custom YUV conversion lookup texture\n"
|
||||
" nocustomtlin\n"
|
||||
" use GL_NEAREST scaling for customtex texture\n"
|
||||
"\n" );
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user