21 |
# |
# |
22 |
|
|
23 |
|
|
24 |
from gzz.gfx.gl import PageSpanPaper |
from gzz.gfx.gl import PageSpanPaper, GL |
25 |
|
from gfx.libutil.nvcode import parseCombiner |
26 |
|
|
27 |
# The filters for pagespanpaper, really clunky |
# The filters for pagespanpaper, really clunky |
28 |
# to write in java. |
# to write in java. |
58 |
ActiveTexture TEXTURE1 |
ActiveTexture TEXTURE1 |
59 |
TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE |
TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE |
60 |
""" |
""" |
61 |
|
PageSpanPaper.withHalo = GL.hasExtension("GL_NV_register_combiners") |
62 |
|
PageSpanPaper.setupHaloDualPass = parseCombiner(""" |
63 |
|
PushAttrib ENABLE_BIT TEXTURE_BIT COLOR_BUFFER_BIT CURRENT_BIT |
64 |
|
ActiveTexture TEXTURE0 |
65 |
|
Enable TEXTURE_2D |
66 |
|
Disable BLEND |
67 |
|
ActiveTexture TEXTURE1 |
68 |
|
TexEnv TEXTURE_FILTER_CONTROL TEXTURE_LOD_BIAS 3 |
69 |
|
ActiveTexture TEXTURE0 |
70 |
|
|
71 |
|
Enable REGISTER_COMBINERS_NV |
72 |
|
CONST0 = 0 0 0 .5 |
73 |
|
|
74 |
|
# Get average component multiplied by 12 |
75 |
|
SPARE0 = ((1-TEX1) . (1))*4 |
76 |
|
|
77 |
|
# Multiply by another 3 |
78 |
|
SPARE0 = (SPARE0 . (1))*1 |
79 |
|
|
80 |
|
# Limit maximum effect |
81 |
|
EF = SPARE0 * CONST0.a |
82 |
|
|
83 |
|
# Blend the halo over the texture |
84 |
|
color = EF * (1) + (1 - EF) * TEX0 |
85 |
|
alpha = 1 |
86 |
|
""") |
87 |
PageSpanPaper.teardown = """ |
PageSpanPaper.teardown = """ |
88 |
PopAttrib |
PopAttrib |
89 |
""" |
""" |