gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] libvob ./Makefile include/vob/jni/Types.hxx inc...


From: Tuomas J. Lukka
Subject: [Gzz-commits] libvob ./Makefile include/vob/jni/Types.hxx inc...
Date: Mon, 09 Jun 2003 11:04:37 -0400

CVSROOT:        /cvsroot/libvob
Module name:    libvob
Branch:         
Changes by:     Tuomas J. Lukka <address@hidden>        03/06/09 11:04:36

Modified files:
        .              : Makefile 
        include/vob/jni: Types.hxx 
        include/vob/poly: Dicer.hxx 
        include/vob/util: ObjectStorer.hxx 
        include/vob/vobs: Paper.hxx 
        org/nongnu/libvob/gl: GL.java 
        org/nongnu/libvob/util: Dbg.java 
        src/jni        : GLRen.template.java Makefile 
Added files:
        include/vob/lod: TexPoly.hxx 
        src/jni        : TexAccum.cxx 
        src/lod        : TexPoly.cxx 

Log message:
        Paper LOD statistics collection

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/Makefile.diff?tr1=1.38&tr2=1.39&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/jni/Types.hxx.diff?tr1=1.23&tr2=1.24&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/lod/TexPoly.hxx?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/poly/Dicer.hxx.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/util/ObjectStorer.hxx.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/vobs/Paper.hxx.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/gl/GL.java.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/org/nongnu/libvob/util/Dbg.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/src/jni/TexAccum.cxx?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/src/jni/GLRen.template.java.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/src/jni/Makefile.diff?tr1=1.30&tr2=1.31&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/src/lod/TexPoly.cxx?rev=1.1

Patches:
Index: libvob/Makefile
diff -u libvob/Makefile:1.38 libvob/Makefile:1.39
--- libvob/Makefile:1.38        Thu Jun  5 03:55:10 2003
+++ libvob/Makefile     Mon Jun  9 11:04:36 2003
@@ -1,6 +1,6 @@
 include rules.mk
 
-SUBDIRS = src/trans src/util src/texture src/paper src/lines src/os src/main 
src/geom
+SUBDIRS = src/trans src/util src/texture src/paper src/lines src/os src/main 
src/geom src/lod
 # ctest off for now
 
 RAWSRC = `find org/ -name "*.java"` 
Index: libvob/include/vob/jni/Types.hxx
diff -u libvob/include/vob/jni/Types.hxx:1.23 
libvob/include/vob/jni/Types.hxx:1.24
--- libvob/include/vob/jni/Types.hxx:1.23       Thu May 29 04:00:20 2003
+++ libvob/include/vob/jni/Types.hxx    Mon Jun  9 11:04:36 2003
@@ -39,6 +39,7 @@
 #include <vob/jni/Strings.hxx>
 #include <vob/paper/Paper.hxx>
 #include <vob/util/ImageLoader.hxx>
+#include <vob/lod/TexPoly.hxx>
 
 
 
@@ -73,6 +74,8 @@
 
     extern ObjectStorer<ImageLoader::RGBARaster> images;
 
+    extern ObjectStorer<LOD::TexAccum> texaccums;
+
 
     typedef ::Vob::Paper::Paper P; // g++3.2 doesn't like ::... inside
                                   // template param
@@ -146,7 +149,7 @@
            return "_."+paramPrefix+" = "+paramPrefix+";\n";    \
        }                                                               \
        static std::string javaImplParamCode(std::string paramPrefix) {         
\
-           return paramPrefix+".getId()";                              \
+           return "("+paramPrefix+" == null ? 0 : "+paramPrefix+".getId())";   
                        \
        }                                                       \
        static std::string javaImplParam(std::string paramPrefix) {     \
            return "int "+paramPrefix;          \
@@ -231,6 +234,11 @@
     START_VOB_JNI_CONVERSION_IDDED(::Vob::Vob *, 
                "GL.RenderableNJavaObject")
        out = vobNs[in];
+    END_VOB_JNI_CONVERSION
+
+    START_VOB_JNI_CONVERSION_IDDED(LOD::TexAccum *, 
+               "GL.TexAccum")
+       out = texaccums.get_allowNull(in);
     END_VOB_JNI_CONVERSION
 
 }
Index: libvob/include/vob/poly/Dicer.hxx
diff -u libvob/include/vob/poly/Dicer.hxx:1.4 
libvob/include/vob/poly/Dicer.hxx:1.5
--- libvob/include/vob/poly/Dicer.hxx:1.4       Wed May 14 18:03:30 2003
+++ libvob/include/vob/poly/Dicer.hxx   Mon Jun  9 11:04:36 2003
@@ -110,24 +110,28 @@
                tris.insert(tris.begin(), t);
        }
 
-       template <class F> void dice(F criterion) {
-           DBG(dbg) << "Triangler: dice\n";
+       template <class F> bool diceRound(F criterion) {
            typedef std::pair<int, int> Edge;
            vector<Edge> tosplit;
+           DBG(dbg) << "Triangler: dice round\n";
+           for(Titer t = tris.begin(); t != tris.end(); t++) {
+               Tri &tri = *t;
+               int spl = criterion(tri.v[0], tri.v[1], tri.v[2]);
+               if(spl >= 0) {
+                   tosplit.push_back( Edge( tri.v[spl], tri.v[(spl+1) % 3]));
+               }
+           }
+           if(!tosplit.size()) return false;
+           for(unsigned i=0; i<tosplit.size(); i++)
+               splitEdge(tosplit[i].first, tosplit[i].second);
+           return true;
+       }
+
+       template <class F> void dice(F criterion) {
+           DBG(dbg) << "Triangler: dice\n";
            int round = 0;
            while(1) {
-               DBG(dbg) << "Triangler: dice round\n";
-               for(Titer t = tris.begin(); t != tris.end(); t++) {
-                   Tri &tri = *t;
-                   int spl = criterion(tri.v[0], tri.v[1], tri.v[2]);
-                   if(spl >= 0) {
-                       tosplit.push_back( Edge( tri.v[spl], tri.v[(spl+1) % 
3]));
-                   }
-               }
-               if(!tosplit.size()) return;
-               for(unsigned i=0; i<tosplit.size(); i++)
-                   splitEdge(tosplit[i].first, tosplit[i].second);
-               tosplit.clear();
+               if(!diceRound(criterion)) return;
                round ++;
                if(round > 20) {
                    DBG(dbg) << "OVER ROUND LIMIT! ABORTING!\n";
@@ -135,6 +139,10 @@
                }
            }
        }
+       template <class F> void iterateTriangles(F func) {
+           for(Titer x = tris.begin(); x != tris.end(); x++)
+               func( (*x).v[0], (*x).v[1], (*x).v[2]);
+       }
        void draw() {
            glBegin(GL_TRIANGLES);
            for(Titer x = tris.begin(); x != tris.end(); x++) {
@@ -146,229 +154,8 @@
        }
        Triangles(Verts &v) : verts(v) {
        }
-    };
-
-    /** Dice a line to pieces satisfying Criterion.
-     * This is a generic method to dice a given edge recursively.
-     * The edge is stored in an slist object containing the abstract
-     * vertices. New vertices are created by a functor.
-     *
-     * @param verts An object supporting (*iter, *iter, float fract)
-     * @param edge The slist object. It is required that insertion won't 
affect iterators,
-     *                         and that insert_after(Iter, &T) is supported.
-     * @param begin Iterator pointing to the first of the two vertices to dice.
-     * @param last Iterator pointing to the second of the two vertices to 
dice. 
-     *                         Assumed to be right after begin by the 
algorithm.
-     * @param split A binary predicate: whether an edge between two vertices 
still needs splitting.
-     *                 May also return a float as an approximation of how many 
split points there
-     *                 should be, but is not currently used that way.
-     * @param maxdepth The maximum number of splits to do recursively
-     * @param depth INTERNAL.
-     * @return Number of new vertices added to the edge.
-     */
-    template<class Verts, class Edge, class Criterion> 
-           int dice_line2(Verts &verts, Edge &edge, 
-                       typename Edge::iterator begin, typename Edge::iterator 
last, 
-                           Criterion split, int maxdepth, int depth=0) {
-       DBG(dbg) << "dice_line "<<depth<<"\n";
-       float nspl = split(*begin, *last);
-       DBG(dbg) << "dice_line split "<<nspl<<"\n";
-       if(depth >= maxdepth || nspl <= 0) {
-           DBG(dbg) << "dice_line STOP "<<nspl<<"\n";
-           return 0;
-       }
-       nspl = (int) nspl;
-       if(nspl > 1) nspl = 1;
-       int ret = 0;
-       typename Edge::iterator prev = begin;
-       for(int i=0; i<nspl; i++) {
-           DBG(dbg) << "dice_line vert "<<i<<"\n";
-           ret ++;
-           int v = verts(*begin, *last, (i+1.0) / (nspl + 1.0));
-           typename Edge::iterator n = edge.insert_after(prev, v);
-           ret += dice_line(verts, edge, prev, n, split, maxdepth, depth+1);
-           prev = n;
-       }
-
-       ret += dice_line(verts, edge, prev, last, split, maxdepth, depth+1);
-       DBG(dbg) << "RET dice_line "<<depth<<" "<<ret << "\n";
-       return ret;
-    }
-
-    template<class Verts, class Edge, class Criterion> 
-           int dice_line3_h(Verts &verts, Edge &edge, 
-                       typename Edge::iterator begin, 
-                       typename Edge::iterator half, 
-                       typename Edge::iterator last, 
-                           Criterion split, int maxdepth, int depth) {
-       if(depth >= maxdepth) {
-           DBG(dbg) << "dice_line3_h STOPDEPTH\n";
-           return 0;
-       }
-       int splitflag = split(*begin, *half, *last);
-       int ret = 0;
-       if(splitflag == 1) {
-           int spv = verts(*begin, *half, .5);
-           ret ++;
-           typename Edge::iterator sp = edge.insert_after(begin, spv);
-           ret += dice_line3_h(verts, edge, begin, sp, half, split, maxdepth, 
depth+1);
-       }
-       int esplitflag = split(*last, *half, *begin);
-       if(esplitflag == 1) {
-           int espv = verts(*half, *last, .5);
-           ret ++;
-           typename Edge::iterator esp = edge.insert_after(half, espv);
-           ret += dice_line3_h(verts, edge, half, esp, last, split, maxdepth, 
depth+1);
-       }
-       return ret;
-       
-    }
-
-    template<class Verts, class Edge, class Criterion> 
-           int dice_line3(Verts &verts, Edge &edge, 
-                       typename Edge::iterator begin, typename Edge::iterator 
last, 
-                           Criterion split, int maxdepth, int depth=0) {
-       DBG(dbg) << "dice_line "<<depth<<"\n";
-       if(depth >= maxdepth) {
-           DBG(dbg) << "dice_line STOPDEPTH\n";
-           return 0;
-       }
-       int halfv = verts(*begin, *last, .5);
-
-
-       int splitflag = split(*begin, halfv, *last);
-       if(splitflag == -1) {
-           DBG(dbg) << "dice_line STOP FLAG\n";
-           return 0;
-       }
-       typename Edge::iterator half = edge.insert_after(begin, halfv);
-       int ret = 1;
-       ret += dice_line3_h(verts, edge, begin, half, last, split, maxdepth, 
depth + 1);
-
-       DBG(dbg) << "RET dice_line "<<depth<<" "<<ret << "\n";
-       return ret;
-    }
-
-
-    /** A triangle whose edges have been diced.
-     */
-    template<class Edge> struct DicedTriangle {
-       typedef typename Edge::iterator Iter;
-       Iter ebegins[3];
-       Iter elasts[3];
-       /** Numbers of vertices between begin and last.
-        */
-       int n[3];
-
-       template<class Verts, class Criterion, class Triangler>
-           void dice(Verts &verts, Triangler &t, Criterion &split, int 
maxdepth, int depth = 0) {
-               DBG(dbg) << "Dice start "<<depth<<" "<<n[0]<<" "<<n[1]<<" 
"<<n[2]<<"\n"
-                   << "with triangle "
-                       << *ebegins[0] << " " << *elasts[0] << " "
-                       << *ebegins[1] << " " << *elasts[1] << " "
-                       << *ebegins[2] << " "<< *elasts[2] << "\n";
-               int maxind ;
-               // Can't use max_element easily, as we need the *LAST*
-               // greatest element, otherwise recurses really badly.
-               if(n[2] >= n[0] && n[2] >= n[1]) {
-                   maxind = 2;
-               } else if(n[1] >= n[2] && n[1] >= n[0]) {
-                   maxind = 1;
-               } else {
-                   maxind = 0;
-               }
-               DBG(dbg) << "Maxind "<<maxind<<"\n";
-
-               if(n[maxind] == 0) {
-                   DBG(dbg) << "Do triangle "
-                       << *ebegins[0] << " " << *ebegins[1] << " " << 
*ebegins[2] << "\n";
-                   t(*ebegins[0], *ebegins[1], *ebegins[2]);
-                   return;
-               }
-
-               int otherEdge = (maxind + 1) % 3;
-               int thirdEdge = (maxind + 2) % 3;
-               // Hope this is the right direction ;)
-               Iter mid = ebegins[maxind];
-               int nin = -1;
-               for(int i=0; i<(n[maxind]+1)/2; i++) {
-                   mid++;
-                   nin ++;
-               }
-               DBG(dbg) << "Middle: "<<*mid<<"\n";
-               Edge newEdge;
-
-               DBG(dbg) << "Creating edges "<<maxind<<" "<<otherEdge<<" "<<
-                       thirdEdge<<"\n";
-               newEdge.push_front(*elasts[otherEdge]);
-               newEdge.push_front(*mid);
-
-               DicedTriangle start;
-               start.ebegins[0] = newEdge.begin();
-               start.elasts[0] = newEdge.begin(); start.elasts[0] ++;
-               start.n[0] = dice_line3(verts, newEdge, start.ebegins[0], 
start.elasts[0], split, maxdepth, depth);
-
-               start.ebegins[1] = ebegins[thirdEdge];
-               start.elasts[1] = elasts[thirdEdge];
-               start.n[1] = n[thirdEdge];
-
-               start.ebegins[2] = ebegins[maxind];
-               start.elasts[2] = mid;
-               start.n[2] = nin;
-
-               DicedTriangle end;
-
-               DBG(dbg) << "Second edge!\n";
-               // newEdge runs in opposite direction now.
-               Edge newEdge2;
-               Iter i = newEdge.begin(); 
-               newEdge2.push_front(*i);
-               end.elasts[0] = newEdge2.begin();
-               for(; i!=newEdge2.end(); i++)
-                   newEdge2.push_front(*i);
-
-               DBG(dbg) << "Second edge done!\n";
-
-               end.ebegins[0] = newEdge2.begin();
-               // elasts set earlier
-               end.n[0] = start.n[0];
-
-               end.ebegins[1] = mid;
-               end.elasts[1] = elasts[maxind];
-               end.n[1] = n[maxind] - nin - 1;
-
-               end.ebegins[2] = ebegins[otherEdge];
-               end.elasts[2] = elasts[otherEdge];
-               end.n[2] = n[otherEdge];
-
-               DBG(dbg) << "Recursing!\n";
-               start.dice(verts, t, split, maxdepth, depth + 1);
-               end.dice(verts, t, split, maxdepth, depth + 1);
-       }
-    };
-
-    template<class Edge> struct InitialDicedTriangle : public 
DicedTriangle<Edge> {
-       Edge e[3];
 
-       template<class Vert, class Verts, class Criterion>
-           void set_and_initial_dice(Verts &verts, Vert v0, Vert v1, Vert v2,
-                           Criterion split, int maxdepth) {
-           e[0].push_front(v1);
-           e[0].push_front(v0);
-           e[1].push_front(v2);
-           e[1].push_front(v1);
-           e[2].push_front(v0);
-           e[2].push_front(v2);
-           
-           for(int i=0; i<3; i++) {
-               ebegins[i] = e[i].begin();
-               elasts[i] = ebegins[i]; elasts[i] ++;
-               n[i] = dice_line3(verts, e[i], ebegins[i], elasts[i], split, 
maxdepth);
-           }
-       }
     };
-
-
 
 
 }
Index: libvob/include/vob/util/ObjectStorer.hxx
diff -u libvob/include/vob/util/ObjectStorer.hxx:1.2 
libvob/include/vob/util/ObjectStorer.hxx:1.3
--- libvob/include/vob/util/ObjectStorer.hxx:1.2        Wed Mar 12 08:37:57 2003
+++ libvob/include/vob/util/ObjectStorer.hxx    Mon Jun  9 11:04:36 2003
@@ -103,6 +103,19 @@
            }
            return vec[p];
        }
+       
+       /** Get the pointer corresponding to the given id.
+        */
+       T *get_allowNull(int p) {
+           if(p == 0) return 0;
+           if(p < 0 || (unsigned)p >= vec.size()) {
+               cerr << name<<
+                   ": Trying to get element past end "<<p<<"\n";
+               return 0;
+           }
+           return vec[p];
+       }
+
 
        /** Alias to get().
         */
Index: libvob/include/vob/vobs/Paper.hxx
diff -u libvob/include/vob/vobs/Paper.hxx:1.10 
libvob/include/vob/vobs/Paper.hxx:1.11
--- libvob/include/vob/vobs/Paper.hxx:1.10      Fri May 16 11:13:10 2003
+++ libvob/include/vob/vobs/Paper.hxx   Mon Jun  9 11:04:36 2003
@@ -92,27 +92,6 @@
     }
 };
 
-/** A set of triangles.
- */
-struct Triangler {
-    struct Tri { 
-       int v[3];
-    };
-    vector<Tri> tris;
-    void operator()(int i, int j, int k) {
-       DBG(dbg_paperquad) << "Triangler: "<<i<<" "<<j<<" "<<k<<"\n";
-       Tri t;
-       t.v[0] = i;
-       t.v[1] = j;
-       t.v[2] = k;
-       tris.push_back(t);
-    }
-    void draw() {
-       glDrawElements(GL_TRIANGLES, tris.size()*3, GL_UNSIGNED_INT,
-                   &(tris[0]));
-    }
-};
-
 inline float split(Verts &v, float dicelen, int i, int j) {
     float ret = (v.points[i].final - v.points[j].final).xylength() 
                    / dicelen - 1;
@@ -121,6 +100,17 @@
     return ret;
 }
 
+inline void addToAccum(LOD::TexAccum *acc, Verts &v, 
+               int v0, int v1, int v2) {
+    acc->add(
+           v.points[v0].final,
+           v.points[v1].final,
+           v.points[v2].final,
+           v.points[v0].orig,
+           v.points[v1].orig,
+           v.points[v2].orig);
+}
+
 inline int splitTri(Verts &v, float dicelen1, float dicelen2, int i, int j, 
int k) {
     DBG(dbg_paperquad) << "SplitTri "<<i<<" "<<j<<" "<<k<<" "<<
            v.points[i].orig<<" "<<
@@ -208,8 +198,11 @@
     float diceLength, diceLength2;
     int diceDepth;
 
+    LOD::TexAccum *texAccum;
+
     template<class F> void params(F &f) {
-       f(paper, x0, y0, x1, y1, flags, diceLength, diceLength2, diceDepth);
+       f(paper, x0, y0, x1, y1, flags, diceLength, diceLength2, diceDepth,
+               texAccum);
     }
 
 
@@ -231,6 +224,18 @@
                triangler.add(0, 1, 3);
                triangler.add(0, 3, 2);
            DBG(dbg_paperquad) << "dice\n";
+
+           if(texAccum) {
+               // First, dice roughly for the texture magnification
+               // accumulator
+               triangler.dice(bind(splitTri, ref(verts), 
+                           diceLength*2, diceLength2*2, _1, _2, _3));
+               // Then, calculate the texture surface estimates
+               triangler.iterateTriangles(
+                       bind(addToAccum, texAccum, ref(verts), _1, _2, _3));
+           }
+
+           // Dice to finish
            triangler.dice(bind(splitTri, ref(verts), diceLength, diceLength2, 
_1, _2, _3));
            DBG(dbg_paperquad) << "diced\n";
        }
Index: libvob/org/nongnu/libvob/gl/GL.java
diff -u libvob/org/nongnu/libvob/gl/GL.java:1.15 
libvob/org/nongnu/libvob/gl/GL.java:1.16
--- libvob/org/nongnu/libvob/gl/GL.java:1.15    Thu May 29 04:00:20 2003
+++ libvob/org/nongnu/libvob/gl/GL.java Mon Jun  9 11:04:36 2003
@@ -800,6 +800,36 @@
     static private native int impl_ByteVector_shade(int id, int w, int h, int 
d, 
                    int comps, String shaderName, String[] params);
 
+// -------------------- TexAccum
+    /** An object that can collect information about which sizes
+     * a texture was rendered at.
+     */
+    static public class TexAccum extends NonRenderableJavaObject {
+       private TexAccum(int id) {
+           super(id);
+           if(GL.dbg) pa("Create texaccum "+id+"\n");
+       }
+       protected void deleteObj() { 
+           if(GL.dbg) pa("Delete texaccum "+getId()+"\n");
+           impl_TexAccum_delete(getId()); 
+       }
+       public void clear() {
+           if(GL.dbg) pa("Clear texaccum "+getId()+"\n");
+           impl_TexAccum_clear(getId());
+       }
+       public double get(int mip) {
+           return impl_TexAccum_get(getId(), mip);
+       }
+    }
+    static public TexAccum createTexAccum() {
+       return new TexAccum(impl_TexAccum_create());
+    }
+    static private native int impl_TexAccum_create();
+    static private native void impl_TexAccum_delete(int id);
+    static private native double impl_TexAccum_get(int id, int mip);
+    static private native void impl_TexAccum_clear(int id);
+
+
 
 //----------Misc
 
Index: libvob/org/nongnu/libvob/util/Dbg.java
diff -u libvob/org/nongnu/libvob/util/Dbg.java:1.2 
libvob/org/nongnu/libvob/util/Dbg.java:1.3
--- libvob/org/nongnu/libvob/util/Dbg.java:1.2  Fri Apr 25 07:17:54 2003
+++ libvob/org/nongnu/libvob/util/Dbg.java      Mon Jun  9 11:04:36 2003
@@ -83,7 +83,7 @@
  */
 
 public final class Dbg {
-public static final String rcsid = "$Id: Dbg.java,v 1.2 2003/04/25 11:17:54 
tjl Exp $";
+public static final String rcsid = "$Id: Dbg.java,v 1.3 2003/06/09 15:04:36 
tjl Exp $";
 
     static boolean dbg = true;
     final void pa(String s) { System.out.println(s); }
@@ -91,13 +91,13 @@
     List dbgClasses = new ArrayList();
 
     /** Turn on debugging for a class.
-     * @param name The name of the class (without the gzz. prefix.)
+     * @param name The name of the class (without the org.nongnu.libvob. 
prefix.)
      * @param dbg Whether to turn debugging on or off.
      */
     public void debugClass(String name, boolean dbg) {
        try {
            if(dbg) pa("Turning on debugging for class "+name);
-           Class clazz = Class.forName("gzz."+name);
+           Class clazz = Class.forName("org.nongnu.libvob."+name);
            Field f = clazz.getField("dbg");
            f.setBoolean(null, dbg);
            dbgClasses.add(clazz);
Index: libvob/src/jni/GLRen.template.java
diff -u libvob/src/jni/GLRen.template.java:1.8 
libvob/src/jni/GLRen.template.java:1.9
--- libvob/src/jni/GLRen.template.java:1.8      Wed Apr  9 09:33:36 2003
+++ libvob/src/jni/GLRen.template.java  Mon Jun  9 11:04:36 2003
@@ -99,4 +99,15 @@
             border0, border1, texslicing, const0, const1, angles, multi, flags,
             GL.createDisplayList(setup), dicefactor);
     }
+
+    public static FixedPaperQuad createFixedPaperQuad(
+           org.nongnu.libvob.gl.Paper paper, 
+           float x0, float y0, float x1, float y1, 
+           int flags, 
+           float diceLength, float diceLength2, int diceDepth) {
+       return createFixedPaperQuad(paper, x0, y0, x1, y1, flags, 
+                   diceLength, diceLength2, diceDepth, null);
+    }
+
+
     
Index: libvob/src/jni/Makefile
diff -u libvob/src/jni/Makefile:1.30 libvob/src/jni/Makefile:1.31
--- libvob/src/jni/Makefile:1.30        Thu Jun  5 03:55:10 2003
+++ libvob/src/jni/Makefile     Mon Jun  9 11:04:36 2003
@@ -5,7 +5,7 @@
 VOB_OBJS = $(VOBS:%=%.vobjniobj)
 TRANS_OBJS = $(TRANS:%=%.transjniobj)
 
-sources = TransFactory.cxx Main.cxx Strings.cxx Transform.cxx Render.cxx 
Font.cxx Paper.cxx Image.cxx Lines.cxx
+sources = TransFactory.cxx Main.cxx Strings.cxx Transform.cxx Render.cxx 
Font.cxx Paper.cxx Image.cxx Lines.cxx TexAccum.cxx
 
 
 
@@ -20,6 +20,7 @@
 TEXTUREOBJS=../texture/Texture.o ../texture/Texture_pipetexture.o 
 UTILOBJS=../util/Perlin.o ../util/buildmipmaps.o ../util/Debug.o 
../util/ImageLoader.o ../util/intersect.o
 GEOMOBJS=../geom/Quadrics.o
+LODOBJS=../lod/TexPoly.o
 
 TRANSOBJS=../trans/Transform.o ../trans/Coorder.o
 
@@ -27,7 +28,7 @@
 
 OBJS= $(sources:%.cxx=%.o)
 
-JNIOBJS=$(OBJS) $(VOB_OBJS) $(TRANS_OBJS) $(OSOBJS) $(TEXTUREOBJS) $(UTILOBJS) 
$(CALLGLOBJS) $(TRANSOBJS) $(MAINOBJS) $(GLMOSAICTEXTOBJS) $(PAPEROBJS) 
$(LINESOBJ) $(GEOMOBJS)
+JNIOBJS=$(OBJS) $(VOB_OBJS) $(TRANS_OBJS) $(OSOBJS) $(TEXTUREOBJS) $(UTILOBJS) 
$(CALLGLOBJS) $(TRANSOBJS) $(MAINOBJS) $(GLMOSAICTEXTOBJS) $(PAPEROBJS) 
$(LINESOBJ) $(GEOMOBJS) $(LODOBJS)
 
 
 EXTRAINCLUDE=-I${JAVAHOME}/include -I${JAVAHOME}/include/linux 
-I${JAVAHOME}/include/kaffe




reply via email to

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