[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire/org/fenfire/spanimages/gl papermakers.py
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] fenfire/org/fenfire/spanimages/gl papermakers.py |
Date: |
Thu, 26 Jun 2003 04:53:55 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Tuomas J. Lukka <address@hidden> 03/06/26 04:53:55
Modified files:
org/fenfire/spanimages/gl: papermakers.py
Log message:
Halo works
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/papermakers.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/spanimages/gl/papermakers.py
diff -u fenfire/org/fenfire/spanimages/gl/papermakers.py:1.3
fenfire/org/fenfire/spanimages/gl/papermakers.py:1.4
--- fenfire/org/fenfire/spanimages/gl/papermakers.py:1.3 Wed Jun 25
06:35:37 2003
+++ fenfire/org/fenfire/spanimages/gl/papermakers.py Thu Jun 26 04:53:54 2003
@@ -2,25 +2,25 @@
# PaperMaker implementations
+from __future__ import nested_scopes;
+
from org.nongnu.libvob.gl import GL, PaperMill
from vob.putil.nvcode import parseCombiner
from org.fenfire.spanimages.gl import PlainPaperMaker
anisofilter = """
- TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_NEAREST
+ TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR
TexParameter TEXTURE_2D TEXTURE_MAG_FILTER LINEAR
- TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 10
+# TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 10
"""
def white(w = None, paperMill = None, filter = anisofilter):
return PlainPaperMaker(1, """
- PushAttrib TEXTURE_BIT
TexEnv TEXTURE_ENV TEXTURE_ENV_MODE REPLACE
Enable TEXTURE_2D
Disable BLEND
""" + filter, """
- PopAttrib
""", None)
def fancyBlend(w, paperMill = None, filter = anisofilter):
@@ -39,6 +39,60 @@
ActiveTexture TEXTURE0
""" % filter, "", None, paperMill, w)
+class HaloPaperMaker_2tex(PlainPaperMaker):
+ def __init__(self, paperMill, w):
+ PlainPaperMaker.__init__(self, 1,
+ parseCombiner("""
+ ActiveTexture TEXTURE0
+ Enable TEXTURE_2D
+ %(filter)s
+ Disable BLEND
+ ActiveTexture TEXTURE1
+ Enable TEXTURE_2D
+ %(filter)s
+ TexEnv TEXTURE_FILTER_CONTROL TEXTURE_LOD_BIAS 3
+ ActiveTexture TEXTURE0
+
+ Enable REGISTER_COMBINERS_NV
+ CONST0 = 0 0 0 .5
+ CONST1 = 0 0 0 .15
+
+ # Get luminance multiplied by 12 * CONST1.a
+ SPARE0 = ((1-TEX1) . (CONST1.a))*4
+
+ # Multiply by another 3
+ SPARE0 = (SPARE0 . (1))*1
+
+ # Limit maximum effect
+ EF = SPARE0 * CONST0.a
+
+ # Blend the halo over the texture
+ color = EF * (1) + (1 - EF) * TEX0
+ alpha = 1
+ """ % { "filter" : anisofilter }),
+ """
+ """,
+ None, paperMill, w)
+ def makePaper(self, img, texgen):
+ p = PlainPaperMaker.makePaper(self, img, texgen)
+ #print p.getPass(0).getSetupcode()
+ p.setNPasses(2)
+ pas = p.getPass(1)
+ pas.setNTexGens(1)
+ pas.putNormalTexGen(0, texgen)
+ pas.setSetupcode("""
+ ActiveTexture TEXTURE0
+ Enable TEXTURE_2D
+ Enable BLEND
+ BlendFunc ZERO SRC_COLOR
+ BindTexture TEXTURE_2D %s
+ TexEnv TEXTURE_ENV TEXTURE_ENV_MODE REPLACE
+ """ % img.loader.getTexture().getTexId())
+ pas.setTeardowncode("""
+ """)
+ return p
+
+
def fancyHalo(w, paperMill = None):
if not GL.hasExtension("GL_NV_register_combiners"):
print "fancy Halo for text not possible without
GL_NV_register_combiners"
@@ -46,37 +100,7 @@
return fancyBlend(w, paperMill)
if paperMill == None:
paperMill = PaperMill.getInstance()
- return PlainPaperMaker(1,
- parseCombiner("""
- PushAttrib ENABLE_BIT TEXTURE_BIT COLOR_BUFFER_BIT CURRENT_BIT
- ActiveTexture TEXTURE0
- Enable TEXTURE_2D
- Disable BLEND
- ActiveTexture TEXTURE1
- TexEnv TEXTURE_FILTER_CONTROL TEXTURE_LOD_BIAS 3
- ActiveTexture TEXTURE0
-
- Enable REGISTER_COMBINERS_NV
- CONST0 = 0 0 0 .5
- CONST1 = 0 0 0 .15
-
- # Get luminance multiplied by 12 * CONST1.a
- SPARE0 = ((1-TEX1) . (CONST1.a))*4
-
- # Multiply by another 3
- SPARE0 = (SPARE0 . (1))*1
-
- # Limit maximum effect
- EF = SPARE0 * CONST0.a
-
- # Blend the halo over the texture
- color = EF * (1) + (1 - EF) * TEX0
- alpha = 1
- """),
- """
- PopAttrib
- """,
- None, paperMill, w)
+ return HaloPaperMaker_2tex(paperMill, w)
blurProgram = None
@@ -115,19 +139,18 @@
if not blurProgram:
print "Fancy blurring is not possible without GL_ARB_fragment_program."
print "Punting to Fancy halo"
+ return fancyHalo(w, paperMill)
if paperMill == None:
paperMill = PaperMill.getInstance()
return PlainPaperMaker(1, """
- PushAttrib ENABLE_BIT TEXTURE_BIT COLOR_BUFFER_BIT CURRENT_BIT
BindProgram FRAGMENT_PROGRAM_ARB %s
Enable FRAGMENT_PROGRAM_ARB
Disable REGISTER_COMBINERS_NV
Disable BLEND
""" % blurProgram.getProgId(),
"""
- PopAttrib
""", [blurProgram], paperMill, w)