[Top][All Lists]
[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
- [Gzz-commits] libvob ./Makefile include/vob/jni/Types.hxx inc...,
Tuomas J. Lukka <=