fenfire-commits
[Top][All Lists]
Advanced

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

[ff-cvs] fenfire ./Makefile org/fenfire/spanimages/gl/De...


From: Tuomas J. Lukka
Subject: [ff-cvs] fenfire ./Makefile org/fenfire/spanimages/gl/De...
Date: Fri, 17 Oct 2003 05:25:34 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Tuomas J. Lukka <address@hidden>        03/10/17 05:25:34

Modified files:
        .              : Makefile 
        org/fenfire/spanimages/gl: DefaultSpanImageFactory.java 
                                   PageScrollBlockImager.java 
                                   PlainPaperMaker.java PoolManager.java 
                                   SingleImage.java papermakers.py 
                                   spanimages.test 
Added files:
        docs/official  : tekes-2004.txt 

Log message:
        Arch sync

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/Makefile.diff?tr1=1.47&tr2=1.48&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/docs/official/tekes-2004.txt?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/DefaultSpanImageFactory.java.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/PageScrollBlockImager.java.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/PoolManager.java.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/SingleImage.java.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/papermakers.py.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/spanimages.test.diff?tr1=1.6&tr2=1.7&r1=text&r2=text

Patches:
Index: fenfire/Makefile
diff -u fenfire/Makefile:1.47 fenfire/Makefile:1.48
--- fenfire/Makefile:1.47       Mon Oct  6 02:26:12 2003
+++ fenfire/Makefile    Fri Oct 17 05:25:31 2003
@@ -14,17 +14,21 @@
 
 LDLIB=LD_LIBRARY_PATH=../libvob/src/jni
 
-CLASSPATH=../storm-depends/cryptix-jce-provider.jar:./build:../navidoc/CLASSES:../storm/CLASSES:../alph/CLASSES:../libvob/CLASSES:../fenfire-depends/libvob.jar:../fenfire-depends/jython.jar:../fenfire-depends/jena.jar:../fenfire-depends/icu4j.jar:../fenfire-depends/xerces.jar
 
+FFCLASSPATH=../storm-depends/cryptix-jce-provider.jar:./build:../navidoc/CLASSES:../storm/CLASSES:../alph/CLASSES:../libvob/CLASSES:../fenfire-depends/libvob.jar:../fenfire-depends/jython.jar:../fenfire-depends/jena.jar:../fenfire-depends/icu4j.jar:../fenfire-depends/xerces.jar
 
-PYTHONPATH=-Dpython.path=../fenfire-depends/jythonlib.jar:../fenfire-depends/jython.jar:../fenfire-depends/pythonlib.jar:.:../libvob:../alph
 
+PYTHONPATH=-Dpython.path=../fenfire-depends/jythonlib.jar:../fenfire-depends/jython.jar:../fenfire-depends/pythonlib.jar:.:../libvob:../alph
 -Dpython.cachedir=$(PWD)/.
 
 JAVA ?= java -Xincgc
 
+JAVAC ?= javac
+
 java:
        mkdir -p build
-       javac -d build -classpath $(CLASSPATH) `find org -name '*.java'`
+       $(JAVAC) -d build -classpath $(FFCLASSPATH):$(CLASSPATH) `find org 
-name '*.java'`
+
+JAVACMD=java -cp $(FFCLASSPATH):$(CLASSPATH) $(PYTHONPATH) 
 
-RUNTEST=$(LDLIB) java -cp $(CLASSPATH) $(PYTHONPATH) org.python.util.jython 
org/fenfire/test/test.py 
+RUNTEST=$(LDLIB) $(JAVACMD) org.python.util.jython org/fenfire/test/test.py 
 
 test:
        $(RUNTEST) -Dvob.api=gl $(DBG) $(TEST)
@@ -35,28 +39,28 @@
 DEMO?=org/fenfire/demo/buoyoing.py
 
 runjython:
-       $(LDLIB) java -cp $(CLASSPATH) $(PYTHONPATH) org.python.util.jython 
$(DBG)
+       $(LDLIB) $(JAVACMD) org.python.util.jython $(DBG)
 
 rundemo:
-       $(LDLIB) java -cp $(CLASSPATH) $(PYTHONPATH) org.python.util.jython 
../libvob/rundemo.py $(DBG) $(DEMO)
+       $(LDLIB) $(JAVACMD) org.python.util.jython ../libvob/rundemo.py $(DBG) 
$(DEMO)
 
 BIN?=fenpdf10.py
 FILE?=myFenfire/mygraph.rdf
 WINDOWSIZE?=1600x1200
 run:
-       $(LDLIB) java -cp $(CLASSPATH) $(PYTHONPATH) org.python.util.jython 
../libvob/rundemo.py -Dfenpdf.file=$(FILE) $(DBG) org/fenfire/bin/$(BIN)
+       $(LDLIB) $(JAVACMD) org.python.util.jython ../libvob/rundemo.py 
-Dfenpdf.file=$(FILE) $(DBG) org/fenfire/bin/$(BIN)
 
 run_literature:
-       $(LDLIB) $(JAVA) -cp $(CLASSPATH) $(PYTHONPATH) org.python.util.jython 
../libvob/rundemo.py -Dfenpdf.pool=../fenfire-priv/ 
-Dfenpdf.file=../spaces/literature.rdf -Dvob.windowsize=$(WINDOWSIZE) $(DBG) 
org/fenfire/bin/$(BIN)
+       $(LDLIB) $(JAVACMD) org.python.util.jython ../libvob/rundemo.py 
-Dfenpdf.pool=../fenfire-priv/ -Dfenpdf.file=../spaces/literature.rdf 
-Dvob.windowsize=$(WINDOWSIZE) $(DBG) org/fenfire/bin/$(BIN)
 
 run_fenpdfdemo:
-       $(LDLIB) java -cp $(CLASSPATH) $(PYTHONPATH) org.python.util.jython 
../libvob/rundemo.py -Dfenpdf.file=$(FILE) -Dfenpdf.demo=1 $(DBG) 
org/fenfire/bin/$(BIN)
+       $(LDLIB) $(JAVACMD) org.python.util.jython ../libvob/rundemo.py 
-Dfenpdf.file=$(FILE) -Dfenpdf.demo=1 $(DBG) org/fenfire/bin/$(BIN)
 
 run_mmdemo:
-       $(LDLIB) java -cp $(CLASSPATH) $(PYTHONPATH) org.python.util.jython 
../libvob/rundemo.py -Dfenmm.file="../spaces/mmdemo.rdf" $(DBG) 
org/fenfire/demo/mm.py
+       $(LDLIB) $(JAVACMD) org.python.util.jython ../libvob/rundemo.py 
-Dfenmm.file="../spaces/mmdemo.rdf" $(DBG) org/fenfire/demo/mm.py
 
 run_textmm:
-       java -cp $(CLASSPATH) $(PYTHONPATH) -Dfenmm.file="$(FILE)" 
org.python.util.jython org/fenfire/fenmm/textmm.py
+       $(JAVACMD) -Dfenmm.file="$(FILE)" org.python.util.jython 
org/fenfire/fenmm/textmm.py
 
 
 VERSION=snapshot-`date -I`
@@ -69,7 +73,7 @@
 BENCH=org.fenfire.swamp.bench.graph
 
 bench:
-       $(LDLIB) $(JAVA) -cp $(CLASSPATH) $(PYTHONPATH) -Dvob.api=gl 
org.python.util.jython ../libvob/runbench.py $(BENCH)
+       $(LDLIB) $(JAVACMD) -Dvob.api=gl org.python.util.jython 
../libvob/runbench.py $(BENCH)
 
 copyrighted::
        python ../fenfire/metacode/copyrighter.py Fenfire
Index: fenfire/org/fenfire/spanimages/gl/DefaultSpanImageFactory.java
diff -u fenfire/org/fenfire/spanimages/gl/DefaultSpanImageFactory.java:1.10 
fenfire/org/fenfire/spanimages/gl/DefaultSpanImageFactory.java:1.11
--- fenfire/org/fenfire/spanimages/gl/DefaultSpanImageFactory.java:1.10 Fri Oct 
10 16:40:42 2003
+++ fenfire/org/fenfire/spanimages/gl/DefaultSpanImageFactory.java      Fri Oct 
17 05:25:33 2003
@@ -70,13 +70,13 @@
                                        s, poolManager);
 
        // x,y texcoords of (1,1) inside texture
-       float x1 = singleImage.loader.getMipzipFile().getOrigWidth();
-       float y1 = singleImage.loader.getMipzipFile().getOrigHeight();
+       float x1 = singleImage.virtualTexture.mipzipFile.getOrigWidth();
+       float y1 = singleImage.virtualTexture.mipzipFile.getOrigHeight();
 
        Dimension d = superImage.getSize();
 
 
-       Dimension largest = singleImage.loader.getMipzipFile().
+       Dimension largest = singleImage.virtualTexture.mipzipFile.
                                getLevelDimension(0);
 
        // Calculate pixels in output per texels in texture
Index: fenfire/org/fenfire/spanimages/gl/PageScrollBlockImager.java
diff -u fenfire/org/fenfire/spanimages/gl/PageScrollBlockImager.java:1.14 
fenfire/org/fenfire/spanimages/gl/PageScrollBlockImager.java:1.15
--- fenfire/org/fenfire/spanimages/gl/PageScrollBlockImager.java:1.14   Tue Aug 
26 14:50:47 2003
+++ fenfire/org/fenfire/spanimages/gl/PageScrollBlockImager.java        Fri Oct 
17 05:25:33 2003
@@ -45,12 +45,6 @@
     public int RESOLUTION = 160;
     public int MAXTEXSIZE = 2048;
 
-    public String filter = 
-           "TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR\n"+
-           "TexParameter TEXTURE_2D TEXTURE_MAG_FILTER LINEAR\n"+
-           "TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 10\n"+
-           "";
-
     /** A cache of block file names.
      * Useful because usually pages of the same file are created
      * right next to each other.
@@ -112,10 +106,10 @@
                        pageFiles.filenames[page],
                        pageFiles.xreso,
                        pageFiles.yreso,
-                       filter,
                        poolManager
                        );
            } catch(Exception e) {
+               e.printStackTrace();
                throw new Error("Couldn't create singleimage! "+e);
            }
            map.map.put(sb.getID(), singleImage);
Index: fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java
diff -u fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java:1.10 
fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java:1.11
--- fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java:1.10 Mon Aug 25 
03:46:52 2003
+++ fenfire/org/fenfire/spanimages/gl/PlainPaperMaker.java      Fri Oct 17 
05:25:34 2003
@@ -113,7 +113,9 @@
        }
        if(depends != null)
            p.addDepend(depends);
-       p.addDepend(img.loader.getTexture());
+
+       int iind = pass.getNIndirectTextureBinds();
+       pass.setNIndirectTextureBinds(iind + n);
 
 
        buf.append(setup);
@@ -122,9 +124,12 @@
        for(int i=0; i<n ; i++) {
            buf.append("\nActiveTexture TEXTURE");
            buf.append(i + offs);
-           buf.append("\nEnable TEXTURE_2D\nBindTexture TEXTURE_2D ");
-           buf.append(img.loader.getTexture().getTexId());
-           buf.append("\n");
+           buf.append("\nEnable TEXTURE_2D\n");
+
+           pass.putIndirectTextureBind(iind + i, 
+                               "TEXTURE"+(i+offs), 
+                               "TEXTURE_2D",
+                               img.virtualTexture.indirectTexture);
 
            pass.putNormalTexGen(i + offs, texgen);
        }
Index: fenfire/org/fenfire/spanimages/gl/PoolManager.java
diff -u fenfire/org/fenfire/spanimages/gl/PoolManager.java:1.12 
fenfire/org/fenfire/spanimages/gl/PoolManager.java:1.13
--- fenfire/org/fenfire/spanimages/gl/PoolManager.java:1.12     Thu Sep 11 
13:26:08 2003
+++ fenfire/org/fenfire/spanimages/gl/PoolManager.java  Fri Oct 17 05:25:34 2003
@@ -28,6 +28,7 @@
 import org.fenfire.spanimages.*;
 import org.nongnu.libvob.*;
 import org.nongnu.libvob.gl.*;
+import org.nongnu.libvob.gl.virtualtexture.*;
 import org.nongnu.libvob.memory.*;
 import org.nongnu.libvob.util.ThreadBackground;
 import java.util.*;
@@ -37,7 +38,7 @@
     private static void p(String s) { 
        System.out.println("PoolManager: "+s); }
 
-    public int POOLSIZE = 64 * 1024 * 1024;
+    // public int POOLSIZE = 64 * 1024 * 1024;
 
     public float DICELENGTH = 1;
     public float DICELENGTH2 = 1;
@@ -47,6 +48,7 @@
 
     Set activeSet = Collections.synchronizedSet(new HashSet());
 
+
     class MySIV extends AbstractVob implements SpanImageVob {
        float w, h;
        float sx0, sx1;
@@ -77,6 +79,33 @@
        }
     }
 
+    IndirectMipzipManager indirectMipzipManager;
+    int[] allocations = new int[] {
+       /*
+       2, 2, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0
+       */
+
+       2, 8, 15, 20, 40, 80,
+       200, 0, 0, 0, 0, 0
+    };
+    VirtualTexture[][] slotContents;
+
+    public PoolManager() {
+       indirectMipzipManager = new NonDeletingIndirectMipzipManager();
+       indirectMipzipManager.init("COMPRESSED_RGB_S3TC_DXT1_EXT", 
+                       2048, 2048);
+       indirectMipzipManager.setDefaultTexParameters(new String[] {
+           "TEXTURE_MIN_FILTER", "LINEAR_MIPMAP_LINEAR",
+           "TEXTURE_MAG_FILTER", "LINEAR",
+           "TEXTURE_MAX_ANISOTROPY_EXT", "10"
+       });
+       indirectMipzipManager.setAllocations(allocations);
+       slotContents = new VirtualTexture[allocations.length][];
+       for(int i=0; i<allocations.length; i++)
+           slotContents[i] = new VirtualTexture[allocations[i]];
+    }
+
     /** Make a SpanImageVob whose SingleImage's texture allocation will 
      * be tracked by this object.
      * @param i The image
@@ -170,6 +199,33 @@
        SingleImage[] actives = (SingleImage[])activeSet.toArray(templ);
        if(dbg) p("UpdateAllocs start "+actives.length);
        Arrays.sort(actives, sortPriority);
+       int level=0; int ind = 0;
+       for(int i=0; level < slotContents.length &&
+                    i<actives.length; i++) {
+           // if(dbg) p("Level 1 "+i+" "+level);
+           slotContents[level][ind] = actives[i].virtualTexture;
+           ind++;
+           while(level < slotContents.length &&
+                 ind >= slotContents[level].length) {
+               // if(dbg) p("LevelIn1 "+level);
+               ind = 0;
+               level++;
+           }
+       }
+
+       while(level < slotContents.length) {
+           slotContents[level][ind] = null;
+           ind++;
+           while(level < slotContents.length &&
+                 ind >= slotContents[level].length) {
+               ind = 0;
+               level++;
+           }
+       }
+       if(dbg) p("UpdateAllocs finish ");
+       indirectMipzipManager.setSlotContents(slotContents);
+
+       /*
        int left = POOLSIZE;
        long time = System.currentTimeMillis();
        for(int i=0; i<actives.length; i++) {
@@ -206,6 +262,7 @@
                activeSet.remove(actives[i]);
        }
        if(dbg) p("Memory left: "+left);
+       */
     }
 
 }
Index: fenfire/org/fenfire/spanimages/gl/SingleImage.java
diff -u fenfire/org/fenfire/spanimages/gl/SingleImage.java:1.12 
fenfire/org/fenfire/spanimages/gl/SingleImage.java:1.13
--- fenfire/org/fenfire/spanimages/gl/SingleImage.java:1.12     Mon Aug 25 
06:52:13 2003
+++ fenfire/org/fenfire/spanimages/gl/SingleImage.java  Fri Oct 17 05:25:34 2003
@@ -27,6 +27,7 @@
 package org.fenfire.spanimages.gl;
 import java.io.File;
 import org.nongnu.libvob.gl.*;
+import org.nongnu.libvob.gl.virtualtexture.*;
 import org.nongnu.libvob.memory.*;
 
 /** A single texture image of an imagespan or pageimagespan.
@@ -37,10 +38,10 @@
     public static boolean dbg = false;
     private static void p(String s) { System.out.println("SingleImage: "+s); }
 
-    public final MipzipLoader loader;
+    public final VirtualTexture virtualTexture;
     public final GL.TexAccum accum;
 
-    /** For each mipmap level of loader, the number of pixels
+    /** For each mipmap level of the texture, the number of pixels
      * that would be rendered less than optimally.
      * These numbers are calculated cumulatively with time, along
      * with an exponential decay term.
@@ -85,7 +86,6 @@
                    String filename, 
                        float xresolution,
                        float yresolution,
-                       String filter,
                        GL.StatsCallback statsCallback
                        ) throws java.io.IOException {
        this.scrollBlock = scrollBlock;
@@ -93,8 +93,9 @@
        this.xresolution = xresolution;
        this.yresolution = yresolution;
 
-       this.loader = new MipzipLoader(new File(filename));
-       this.loader.setFilterSettings(filter);
+       this.virtualTexture = new VirtualTexture(
+                   new MipzipFile(new File(filename)));
+
        if(statsCallback != null) 
            this.accum = GL.createTexAccum(statsCallback, this);
        else
@@ -103,7 +104,8 @@
        if(dbg) p("Create single image: "+scrollBlock+" "+page+" "+filename
                    +" "+xresolution+" "+yresolution+" "+statsCallback);
 
-       this.missingPixels = new double[this.loader.getNLevels()];
+       this.missingPixels = new double[
+               this.virtualTexture.mipzipFile.getNLevels()];
     }
 
     public void finalize() {
Index: fenfire/org/fenfire/spanimages/gl/papermakers.py
diff -u fenfire/org/fenfire/spanimages/gl/papermakers.py:1.14 
fenfire/org/fenfire/spanimages/gl/papermakers.py:1.15
--- fenfire/org/fenfire/spanimages/gl/papermakers.py:1.14       Sun Sep 14 
12:17:23 2003
+++ fenfire/org/fenfire/spanimages/gl/papermakers.py    Fri Oct 17 05:25:34 2003
@@ -256,9 +256,12 @@
            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.setNIndirectTextureBinds(1)
+       pas.putIndirectTextureBind(0, "TEXTURE0", "TEXTURE_2D", 
img.virtualTexture.indirectTexture)
+
        pas.setTeardowncode("""
            PopAttrib
            BindTexture TEXTURE_2D 0
Index: fenfire/org/fenfire/spanimages/gl/spanimages.test
diff -u fenfire/org/fenfire/spanimages/gl/spanimages.test:1.6 
fenfire/org/fenfire/spanimages/gl/spanimages.test:1.7
--- fenfire/org/fenfire/spanimages/gl/spanimages.test:1.6       Tue Jun 24 
06:02:33 2003
+++ fenfire/org/fenfire/spanimages/gl/spanimages.test   Fri Oct 17 05:25:34 2003
@@ -100,7 +100,7 @@
 
     vs.map.put(spanImageVob, pcs)
 
-    for i in range(0, 10):
+    for i in range(0, 50):
        for j in range(0, 20):
            # Have to do by hand - no abstractupdatemanager loop
            vob.AbstractUpdateManager.tickIdle()




reply via email to

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