summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-06-22 17:02:42 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-06-22 17:02:42 +0000
commit42efe0d37619258651e1f6fd2ae3c6812927f704 (patch)
tree4c017f22f8424c113125e83d6d48bb05a3cee12f /libvo
parent0a8fb0f7db26e03317dcabece619274e0a515fc5 (diff)
downloadmpv-42efe0d37619258651e1f6fd2ae3c6812927f704.tar.bz2
mpv-42efe0d37619258651e1f6fd2ae3c6812927f704.tar.xz
reduce number of texture indirections to support older cards
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18790 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/gl_common.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/libvo/gl_common.c b/libvo/gl_common.c
index 19d0fb9439..e780a72e89 100644
--- a/libvo/gl_common.c
+++ b/libvo/gl_common.c
@@ -652,14 +652,14 @@ static const char *bilin_filt_template =
#define BICUB_FILT_MAIN(textype) \
/* first y-interpolation */ \
"ADD coord, fragment.texcoord[%c].xyxy, cdelta.xyxw;" \
+ "ADD coord2, fragment.texcoord[%c].xyxy, cdelta.zyzw;" \
"TEX a.r, coord.xyxy, texture[%c], "textype";" \
"TEX a.g, coord.zwzw, texture[%c], "textype";" \
- "LRP a.b, parmy.b, a.rrrr, a.gggg;" \
/* second y-interpolation */ \
- "ADD coord, fragment.texcoord[%c].xyxy, cdelta.zyzw;" \
- "TEX a.r, coord.xyxy, texture[%c], "textype";" \
- "TEX a.g, coord.zwzw, texture[%c], "textype";" \
- "LRP a.a, parmy.b, a.rrrr, a.gggg;" \
+ "TEX b.r, coord2.xyxy, texture[%c], "textype";" \
+ "TEX b.g, coord2.zwzw, texture[%c], "textype";" \
+ "LRP a.b, parmy.b, a.rrrr, a.gggg;" \
+ "LRP a.a, parmy.b, b.rrrr, b.gggg;" \
/* x-interpolation */ \
"LRP yuv.%c, parmx.b, a.bbbb, a.aaaa;"
@@ -930,7 +930,7 @@ static void glSetupYUVFragprog(float brightness, float contrast,
"OPTION ARB_precision_hint_fastest;"
// all scaler variables must go here so they aren't defined
// multiple times when the same scaler is used more than once
- "TEMP coord, cdelta, parmx, parmy, a, yuv;";
+ "TEMP coord, coord2, cdelta, parmx, parmy, a, b, yuv;";
int prog_remain = sizeof(yuv_prog) - strlen(yuv_prog);
char *prog_pos = &yuv_prog[strlen(yuv_prog)];
int cur_texu = 3;