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 PoolManager.java


From: Tuomas J. Lukka
Subject: [Gzz-commits] fenfire/org/fenfire/spanimages/gl PoolManager.java
Date: Thu, 26 Jun 2003 04:54:18 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Tuomas J. Lukka <address@hidden>        03/06/26 04:54:18

Modified files:
        org/fenfire/spanimages/gl: PoolManager.java 

Log message:
        Allow locking singleimgs to loaded

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/spanimages/gl/PoolManager.java.diff?tr1=1.6&tr2=1.7&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/spanimages/gl/PoolManager.java
diff -u fenfire/org/fenfire/spanimages/gl/PoolManager.java:1.6 
fenfire/org/fenfire/spanimages/gl/PoolManager.java:1.7
--- fenfire/org/fenfire/spanimages/gl/PoolManager.java:1.6      Tue Jun 24 
07:11:52 2003
+++ fenfire/org/fenfire/spanimages/gl/PoolManager.java  Thu Jun 26 04:54:18 2003
@@ -43,6 +43,8 @@
     public float DICELENGTH2 = 1;
     public int DICEDEPTH = 10;
 
+    public int MIN_ACTIVES = 20; // minimum number to retain actively
+
     Set activeSet = Collections.synchronizedSet(new HashSet());
 
     class MySIV extends AbstractVob implements SpanImageVob {
@@ -94,6 +96,7 @@
 
        siv.sx0 = sx0; siv.sx1 = sx1; siv.sy0 = sy0; siv.sy1 = sy1;
 
+       activeSet.add(i);
 
        if(dbg) 
            p("Makevob: "+mult+" "+w+" "+h);
@@ -144,6 +147,11 @@
        bgThread.start();
     }
 
+    /** A set of singleimages that are to be locked at
+     * maximum resolution.
+     */
+    public Set locked = Collections.synchronizedSet(new HashSet());
+
     SingleImage[] templ = new SingleImage[0];
     public void updateAllocs() {
        SingleImage[] actives = (SingleImage[])activeSet.toArray(templ);
@@ -155,6 +163,12 @@
            actives[i].updateTime(time);
        }
        for(int i=0; i<actives.length; i++) {
+           if(locked.contains(actives[i])) {
+               actives[i].loader.setGoalBaseLevel(0,
+                               Background.getDefaultInstance(),
+                               1);
+               continue;
+           }
            int l = 0;
            if(dbg) p("Loop: "+i+" "+actives.length);
            for(; l < actives[i].missingPixels.length; l++) {
@@ -175,7 +189,7 @@
            actives[i].loader.setGoalBaseLevel(l,
                            Background.getDefaultInstance(),
                            (float)(10 + .1 * i));
-           if(l == actives[i].loader.getNLevels()-1)
+           if(i >= MIN_ACTIVES && l == actives[i].loader.getNLevels()-1)
                activeSet.remove(actives[i]);
        }
     }




reply via email to

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