gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] fenfire/org/fenfire/spanimages/gl PlainPaperMak...


From: Tuomas J. Lukka
Subject: [Gzz-commits] fenfire/org/fenfire/spanimages/gl PlainPaperMak...
Date: Wed, 25 Jun 2003 04:01:29 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Tuomas J. Lukka <address@hidden>        03/06/25 04:01:29

Modified files:
        org/fenfire/spanimages/gl: PlainPaperMaker.java 
Added files:
        org/fenfire/spanimages/gl: papermakers.py 

Log message:
        Porting papermaker functions from earlier versions

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/papermakers.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java
diff -u fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java:1.4 
fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java:1.5
--- fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java:1.4  Mon Jun 23 
09:22:47 2003
+++ fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java      Wed Jun 25 
04:01:28 2003
@@ -43,12 +43,18 @@
 
     Object depends;
 
+    PaperMill papermill;
+    GraphicsAPI.RenderingSurface w;
+
     /** Create a new PlainPaperMaker that just copies the texture value
      * to the screen.
+     * This does not put in the proper filtering - it's better
+     * to use org.fenfire.spanimages.gl.papermakers for these.
      */
     public PlainPaperMaker() {
        this(1, "PushAttrib TEXTURE_BIT\nTexEnv TEXTURE_ENV TEXTURE_ENV_MODE 
REPLACE\n", "PopAttrib\n", null);
     }
+
     /** Create a new PlainPaperMaker.
      * @param n The number of texunits to put the given texture into.
      * @param setup The setup code.
@@ -64,32 +70,66 @@
        this.depends = depends;
     }
 
+    /** Create a new PlainPaperMaker.
+     * @param n The number of texunits to put the given texture into.
+     * @param setup The setup code.
+     * @param teardown The teardown code
+     * @param depends The objects that mustn't be reclaimed by the GC
+     *                         before the papers.
+     * @param papermill The papermill to use to make the optimized background 
paper
+     */
+    public PlainPaperMaker(int n, String setup, String teardown, 
+                       Object depends, PaperMill papermill,
+                       GraphicsAPI.RenderingSurface w) {
+       this.n = n;
+       this.setup = setup;
+       this.teardown = teardown;
+       this.depends = depends;
+       this.papermill = papermill;
+       this.w = w;
+    }
+
     public Paper makePaper(SingleImage img, float[] texgen) {
-       Paper p = new Paper();
+       Paper p;
+       Paper.Pass pass;
+       int offs = 0;
+       StringBuffer buf = new StringBuffer();
+       if(papermill != null) {
+           p = papermill.getOptimizedPaper(img.scrollBlock.hashCode());
+           if(p.getNPasses() != 1)
+               throw new Error("Invalid paper gotten back");
+           pass = p.getPass(0);
+           if(pass.getNTexGens() != 1)
+               throw new Error("Invalid paper gotten back");
+           offs = 1;
+           buf.append(pass.getSetupcode());
+       } else {
+           p = new Paper();
+           p.setNPasses(1);
+           pass = p.getPass(0);
+       }
        if(depends != null)
            p.addDepend(depends);
        p.addDepend(img.loader.getTexture());
-       p.setNPasses(1);
-       Paper.Pass pass = p.getPass(0);
 
-       StringBuffer buf = new StringBuffer();
+
        buf.append(setup);
        
        pass.setNTexGens(n);
        for(int i=0; i<n ; i++) {
            buf.append("\nActiveTexture TEXTURE");
-           buf.append(i);
+           buf.append(i + offs);
            buf.append("\nBindTexture TEXTURE_2D ");
            buf.append(img.loader.getTexture().getTexId());
            buf.append("\n");
 
-           pass.putNormalTexGen(i, texgen);
+           pass.putNormalTexGen(i + 1, texgen);
        }
        buf.append("\nActiveTexture TEXTURE0\n");
 
        pass.setSetupcode(buf.toString());
 
-       pass.setTeardowncode(teardown);
+       pass.setTeardowncode(teardown + pass.getTeardowncode());
 
        return p;
     }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]