[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/gzz gfx/gl/PageSpanPaper.java gfx/gl/pagesp...
From: |
Janne V. Kujala |
Subject: |
[Gzz-commits] gzz/gzz gfx/gl/PageSpanPaper.java gfx/gl/pagesp... |
Date: |
Sun, 02 Mar 2003 08:49:33 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Janne V. Kujala <address@hidden> 03/03/02 08:49:32
Modified files:
gzz/gfx/gl : PageSpanPaper.java pagespanpaper.py
gzz/view/buoy : buoymanager.py
Log message:
Add text halo enhancement (requires NV10) to PageSpanPaper; Ctrl-H to
toggle in buoyoing
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/gfx/gl/PageSpanPaper.java.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/gfx/gl/pagespanpaper.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/buoy/buoymanager.py.diff?tr1=1.49&tr2=1.50&r1=text&r2=text
Patches:
Index: gzz/gzz/gfx/gl/PageSpanPaper.java
diff -u gzz/gzz/gfx/gl/PageSpanPaper.java:1.11
gzz/gzz/gfx/gl/PageSpanPaper.java:1.12
--- gzz/gzz/gfx/gl/PageSpanPaper.java:1.11 Fri Feb 21 15:02:38 2003
+++ gzz/gzz/gfx/gl/PageSpanPaper.java Sun Mar 2 08:49:31 2003
@@ -57,6 +57,7 @@
Paper bg;
Paper bgPaper;
+ Paper bgHaloPaper;
Paper noBgPaper;
/** Return callgl code to bind this page's texture
@@ -101,6 +102,13 @@
*/
public static String setupDualPass = null;
+ /** Set up code for being the extra pass.
+ * Take the value from texunit 0 and blend on top of it halo of texunit 1.
+ */
+ public static String setupHaloDualPass = null;
+
+ public static boolean withHalo = false;
+
public static String teardown = null;
int paperSeed;
@@ -125,30 +133,56 @@
throw new Error("Trying to use bg without papermill");
bg = paperMill.getOptimizedPaper(paperSeed, paperMillWindow);
}
- if(bgPaper == null) {
- bgPaper = (Paper)bg.clone();
- // Check if we have a single pass and single texture
- // If yes, *assume*!!! that the right thing
- // to do is to just put the RGB value out.
- if(bgPaper.getNPasses() == 1 &&
- bgPaper.getPass(0).getNTexGens() == 1) {
-
- Paper.Pass pass = bgPaper.getPass(0);
- pass.setNTexGens(2);
- pass.putNormalTexGen(1, getTexgen());
- pass.setSetupcode(
- pass.getSetupcode() +
- setupDualPass + getBindTexture(1));
- pass.setTeardowncode(teardown +
- pass.getTeardowncode());
-
- } else {
- // We don't have an optimized paper;
- // add a pass.
- addPaperPass(bgPaper, setupExtraPass);
+ if(withHalo) {
+ if (bgHaloPaper == null) {
+ bgHaloPaper = (Paper)bg.clone();
+ if(bgHaloPaper.getNPasses() == 1 &&
+ bgHaloPaper.getPass(0).getNTexGens() == 1) {
+ // Draw text-haloed paper
+ Paper.Pass pass = bgHaloPaper.getPass(0);
+ pass.setNTexGens(2);
+ pass.putNormalTexGen(1, getTexgen());
+ pass.setSetupcode(
+ pass.getSetupcode() +
+ setupHaloDualPass +
+ getBindTexture(1));
+ pass.setTeardowncode(teardown +
+ pass.getTeardowncode());
+
+ // Draw text
+ addPaperPass(bgHaloPaper, setupExtraPass);
+ } else {
+ // We don't have an optimized paper;
+ // add a pass.
+ addPaperPass(bgHaloPaper, setupExtraPass);
+ // FIXME: add halo
+ }
+ }
+ return bgHaloPaper;
+ } else {
+ if(bgPaper == null) {
+ bgPaper = (Paper)bg.clone();
+ // Check if we have a single pass and single texture
+ // If yes, *assume*!!! that the right thing
+ // to do is to just put the RGB value out.
+ if(bgPaper.getNPasses() == 1 &&
+ bgPaper.getPass(0).getNTexGens() == 1) {
+ Paper.Pass pass = bgPaper.getPass(0);
+ pass.setNTexGens(2);
+ pass.putNormalTexGen(1, getTexgen());
+ pass.setSetupcode(
+ pass.getSetupcode() +
+ setupDualPass + getBindTexture(1));
+ pass.setTeardowncode(teardown +
+ pass.getTeardowncode());
+ } else {
+ // We don't have an optimized paper;
+ // add a pass.
+ addPaperPass(bgPaper, setupExtraPass);
+ }
}
+ return bgPaper;
}
- return bgPaper;
} else {
if(noBgPaper == null) {
noBgPaper = new Paper();
Index: gzz/gzz/gfx/gl/pagespanpaper.py
diff -u gzz/gzz/gfx/gl/pagespanpaper.py:1.7 gzz/gzz/gfx/gl/pagespanpaper.py:1.8
--- gzz/gzz/gfx/gl/pagespanpaper.py:1.7 Fri Feb 21 15:02:38 2003
+++ gzz/gzz/gfx/gl/pagespanpaper.py Sun Mar 2 08:49:32 2003
@@ -21,7 +21,8 @@
#
-from gzz.gfx.gl import PageSpanPaper
+from gzz.gfx.gl import PageSpanPaper, GL
+from gfx.libutil.nvcode import parseCombiner
# The filters for pagespanpaper, really clunky
# to write in java.
@@ -57,6 +58,32 @@
ActiveTexture TEXTURE1
TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE
"""
+PageSpanPaper.withHalo = GL.hasExtension("GL_NV_register_combiners")
+PageSpanPaper.setupHaloDualPass = 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
+
+ # Get average component multiplied by 12
+ SPARE0 = ((1-TEX1) . (1))*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
+""")
PageSpanPaper.teardown = """
PopAttrib
"""
Index: gzz/gzz/view/buoy/buoymanager.py
diff -u gzz/gzz/view/buoy/buoymanager.py:1.49
gzz/gzz/view/buoy/buoymanager.py:1.50
--- gzz/gzz/view/buoy/buoymanager.py:1.49 Fri Feb 21 15:02:45 2003
+++ gzz/gzz/view/buoy/buoymanager.py Sun Mar 2 08:49:32 2003
@@ -166,6 +166,8 @@
self.animationCS_main = None
def key(self, key):
+ if key == "Ctrl-H":
+ gzz.gfx.gl.PageSpanPaper.withHalo = not
gzz.gfx.gl.PageSpanPaper.withHalo
if key == "Print":
saveanim.saveframe("buoyoing.png", w)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz/gzz gfx/gl/PageSpanPaper.java gfx/gl/pagesp...,
Janne V. Kujala <=