Mercurial > mplayer.hg
annotate TOOLS/edgedetect.fp @ 36920:40ad45360c8a
Replace old item 'potmeter' by new item 'pimage'.
Recent versions of the X11/GTK GUI didn't allow to control a potmeter,
because that didn't seem to make any sense.
In order to get rid of the confusing potmeter that doesn't distinguish
from a hpotmeter and in order to allow the more useful behaviour recent
versions of the X11/GTK GUI have been utilized (and because we're still
supporting item 'potmeter' for reasons of compatibility with old skins),
introduce new item 'pimage' that reuses most of the current potmeter
code.
Additionally, remove remaining code and documentation of 'potmeter'.
author | ib |
---|---|
date | Mon, 17 Mar 2014 12:29:46 +0000 |
parents | cae067bfc231 |
children |
rev | line source |
---|---|
16488 | 1 !!ARBfp1.0 |
2 # Custom YUV->RGB conversion program for MPlayer's -vo gl. | |
3 # Copyleft (C) Reimar Döffinger, 2005 | |
25605
cae067bfc231
Relicense to GPL v2 or later with Reimar's permission.
diego
parents:
19018
diff
changeset
|
4 # Licensed under the GNU GPL v2 or later |
16488 | 5 # Usage: mplayer -vo gl:yuv=4:customprog=edgedetect.fp |
6 # This is some custom edge-detect like effect. | |
7 # Try adjusting the gamma! | |
8 # program.env[0].xy contains the size of one source texel | |
19018
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
9 TEMP res, yuv, pos, tmp, sizes; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
10 SWZ sizes, program.env[0], x, y, 0, 0; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
11 TEX yuv.r, fragment.texcoord[0], texture[0], 2D; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
12 ADD pos, fragment.texcoord[0].xyxy, sizes.xwwy; # texels to the right and below |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
13 TEX tmp.r, pos.xyxy, texture[0], 2D; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
14 MAD yuv.r, yuv.rrrr, {4}, -tmp.rrrr; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
15 TEX tmp.r, pos.zwzw, texture[0], 2D; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
16 SUB yuv.r, yuv.rrrr, tmp.rrrr; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
17 SUB pos, fragment.texcoord[0].xyxy, sizes.xwwy; # texels to the left and above |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
18 TEX tmp.r, pos.xyxy, texture[0], 2D; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
19 SUB yuv.r, yuv.rrrr, tmp.rrrr; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
20 TEX tmp.r, pos.zwzw, texture[0], 2D; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
21 SUB yuv.r, yuv.rrrr, tmp.rrrr; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
22 TEX yuv.g, fragment.texcoord[1], texture[1], 2D; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
23 TEX yuv.b, fragment.texcoord[2], texture[2], 2D; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
24 # now do the normal YUV -> RGB conversion but include effect strength |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
25 # multiplication by 2 and 0.5 offset |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
26 MAD res, yuv.rrrr, {2.328, 2.328, 2.328, 0}, {-0.37416, 1.03133, -0.58599, 0.125}; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
27 MAD res.rgb, yuv.gggg, {0, -0.391, 2.018, 0}, res; |
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
28 MAD res.rgb, yuv.bbbb, {1.596, -0.813, 0, 0}, res; |
16488 | 29 # do gamma texture lookup |
30 TEX res.r, res.raaa, texture[3], 2D; | |
31 ADD res.a, res.a, 0.25; | |
32 TEX res.g, res.gaaa, texture[3], 2D; | |
33 ADD res.a, res.a, 0.25; | |
34 TEX res.b, res.baaa, texture[3], 2D; | |
35 # move res into result, this allows easily commenting out some parts. | |
19018
69785427a61e
Fix for changed env parameter contents and improve speed.
reimar
parents:
16488
diff
changeset
|
36 MOV result.color, res; |
16488 | 37 END |