[Fencommits] libvob: Fixes and tweaks to support lwjgl API.

Matti J. Katila majukati at cc.jyu.fi
Tue Feb 7 23:05:14 EET 2006


Sun Feb  5 11:10:29 EET 2006  Matti J. Katila <majukati at cc.jyu.fi>
  * Fixes and tweaks to support lwjgl API.

diff -rN -u libvob-old/Makefile libvob-new/Makefile
--- libvob-old/Makefile	2006-02-07 23:05:13.486908753 +0200
+++ libvob-new/Makefile	2006-02-07 22:10:36.000000000 +0200
@@ -48,7 +48,7 @@
 
 DEPENDS = ../depends
 
-CLASSPATH := $(CLASSDIR):../navidoc/CLASSES:$(DEPENDS)/jython.jar:$(DEPENDS)/png.jar:$(CLASSPATH):$(DEPENDS)/javolution.jar:$(DEPENDS)/jtidy.jar:$(DEPENDS)/xom-1.0b7.jar
+CLASSPATH := $(CLASSDIR):../navidoc/CLASSES:$(DEPENDS)/jython.jar:$(DEPENDS)/png.jar:$(CLASSPATH):$(DEPENDS)/javolution.jar:$(DEPENDS)/jtidy.jar:$(DEPENDS)/xom-1.0b7.jar:$(DEPENDS)/jline.jar:$(DEPENDS)/lwjgl.jar
 export CLASSPATH
 
 ifeq (,$(JYTHONPATH))
diff -rN -u libvob-old/org/nongnu/libvob/GraphicsAPI.java libvob-new/org/nongnu/libvob/GraphicsAPI.java
--- libvob-old/org/nongnu/libvob/GraphicsAPI.java	2006-02-07 23:05:13.459912824 +0200
+++ libvob-new/org/nongnu/libvob/GraphicsAPI.java	2006-02-07 22:10:36.000000000 +0200
@@ -56,7 +56,7 @@
 	    gfxapi = new org.nongnu.libvob.impl.awt.AWTAPI();
             type = "awt";
 	} else if(cl.equals("applet")) {
-		gfxapi = new org.nongnu.libvob.impl.applet.APPLETAPI();
+	    gfxapi = new org.nongnu.libvob.impl.applet.APPLETAPI();
             type = "applet";
 	} else if(cl.equals("gl")) {
 	    gfxapi = new org.nongnu.libvob.impl.gl.GLAPI();
@@ -64,9 +64,12 @@
 	} else if(cl.equals("terminal")) {
 	    gfxapi = new org.nongnu.libvob.impl.terminal.TERMINALAPI();
             type = "terminal";
+	} else if(cl.equals("lwjgl")) {
+	    gfxapi = new org.nongnu.libvob.impl.lwjgl.LWJGL_API();
+	    type = "lwjgl";
 	} else
 	    throw new Error("Invalid client type '"+cl+"': should be "+
-			    "awt, applet, terminal or gl");
+			    "awt, applet, terminal, gl  or lwjgl");
     }
 
     /** Get the singleton instance.
diff -rN -u libvob-old/org/nongnu/libvob/impl/DefaultVobMap.java libvob-new/org/nongnu/libvob/impl/DefaultVobMap.java
--- libvob-old/org/nongnu/libvob/impl/DefaultVobMap.java	2006-02-07 23:05:13.449914332 +0200
+++ libvob-new/org/nongnu/libvob/impl/DefaultVobMap.java	2006-02-07 22:10:35.000000000 +0200
@@ -517,9 +517,11 @@
 	}
         
 	g.setColor(info.fade(textRangeColor[range]));
-	((AWTTextStyle)style).render(g, (int)x, (int)ty, chars, 0, len,
-				     scale, info);
-
+	if (style instanceof AWTTextStyle)
+	    ((AWTTextStyle)style).render(g, (int)x, (int)ty, chars, 0, len,
+					 scale, info);
+	else
+	    g.drawString(new String(chars, 0, len), (int)x, (int)y);
 	return lastClip;
     }
 
diff -rN -u libvob-old/org/nongnu/libvob/impl/awt/AWTVobCoorderBase.java libvob-new/org/nongnu/libvob/impl/awt/AWTVobCoorderBase.java
--- libvob-old/org/nongnu/libvob/impl/awt/AWTVobCoorderBase.java	2006-02-07 23:05:13.446914784 +0200
+++ libvob-new/org/nongnu/libvob/impl/awt/AWTVobCoorderBase.java	2006-02-07 22:10:35.000000000 +0200
@@ -379,7 +379,7 @@
     Trans noOp = new Trans(){
 	    public String toString() { return "no op"; }
 	    void put(Coordinates into) {
-		into.copy(getParent(), cs());
+		into.copy(this.getParent(), cs());
 	    }
 	};
 
@@ -441,7 +441,7 @@
 	    public String toString() { return "translate"; }
 	    void put(Coordinates into) {
 		int f = inds[cs()+2];
-		into.copy(getParent(), cs());
+		into.copy(this.getParent(), cs());
 		into.setX(cs(), into.x(cs()) + floats[f+0]*into.sx(cs()));
 		into.setY(cs(), into.y(cs()) + floats[f+1]*into.sy(cs()));
 		into.setD(cs(), into.d(cs()) + floats[f+2]);
@@ -452,7 +452,7 @@
 	    public String toString() { return "scale"; }
 	    void put(Coordinates into) {
 		int f = inds[cs()+2];
-		into.copy(getParent(), cs());
+		into.copy(this.getParent(), cs());
 		into.setSX(cs(), into.sx(cs()) * floats[f+0]);
 		into.setSY(cs(), into.sy(cs()) * floats[f+1]);
 
@@ -474,7 +474,7 @@
 	new Trans() {   // 12 box
 	    public String toString() { return "box"; }
 	    void put(Coordinates into) {
-		into.copy(getParent(), cs());
+		into.copy(this.getParent(), cs());
 	    }
 	    float w() {
 		int f = inds[cs()+2];
@@ -495,13 +495,13 @@
 	    public String toString() { return "ortho"; }
 	    void put(Coordinates into) {
 		int f = inds[cs()+2];
-		into.setX(cs(), floats[f+1]*into.sx(getParent()) + 
-			        into.x(getParent()));
-		into.setY(cs(), floats[f+2]*into.sy(getParent()) + 
-			        into.y(getParent()));
-		into.setSX(cs(), floats[f+3]*into.sx(getParent()));
-		into.setSY(cs(), floats[f+4]*into.sy(getParent()));
-		into.setD(cs(), floats[f+0] + into.d(getParent()));
+		into.setX(cs(), floats[f+1]*into.sx(this.getParent()) + 
+			        into.x(this.getParent()));
+		into.setY(cs(), floats[f+2]*into.sy(this.getParent()) + 
+			        into.y(this.getParent()));
+		into.setSX(cs(), floats[f+3]*into.sx(this.getParent()));
+		into.setSY(cs(), floats[f+4]*into.sy(this.getParent()));
+		into.setD(cs(), floats[f+0] + into.d(this.getParent()));
 	    }
 	    float sx() {
 		int f = inds[cs()+2];
@@ -650,13 +650,13 @@
 	    public String toString() { return "orthoBox"; }
 	    void put(Coordinates into) {
 		int f = inds[cs()+2];
-		into.setX(cs(), floats[f+1]*into.sx(getParent()) + 
-			        into.x(getParent()));
-		into.setY(cs(), floats[f+2]*into.sy(getParent()) + 
-			        into.y(getParent()));
-		into.setSX(cs(), floats[f+3]*into.sx(getParent()));
-		into.setSY(cs(), floats[f+4]*into.sy(getParent()));
-		into.setD(cs(), floats[f+0] + into.d(getParent()));
+		into.setX(cs(), floats[f+1]*into.sx(this.getParent()) + 
+			        into.x(this.getParent()));
+		into.setY(cs(), floats[f+2]*into.sy(this.getParent()) + 
+			        into.y(this.getParent()));
+		into.setSX(cs(), floats[f+3]*into.sx(this.getParent()));
+		into.setSY(cs(), floats[f+4]*into.sy(this.getParent()));
+		into.setD(cs(), floats[f+0] + into.d(this.getParent()));
 	    }
 	    float sx() {
 		int f = inds[cs()+2];
@@ -680,7 +680,7 @@
 	}, 
 	new Trans() {   // 20 unitSq
 	    void put(Coordinates into) {
-		into.copy(getParent(), cs());
+		into.copy(this.getParent(), cs());
 		into.setSX(cs(), sx()*into.sx(cs()));
 		into.setSY(cs(), sy()*into.sy(cs()));
 	    }
@@ -729,7 +729,7 @@
 	},
 	new Trans() {   // 22 translatePolar
 	    void put(Coordinates into) {
-		into.copy(getParent(), cs());
+		into.copy(this.getParent(), cs());
 
 		int f = inds[cs()+2];
 
diff -rN -u libvob-old/org/nongnu/libvob/impl/gl/GLVobCoorderBase.java libvob-new/org/nongnu/libvob/impl/gl/GLVobCoorderBase.java
--- libvob-old/org/nongnu/libvob/impl/gl/GLVobCoorderBase.java	2006-02-07 23:05:13.441915538 +0200
+++ libvob-new/org/nongnu/libvob/impl/gl/GLVobCoorderBase.java	2006-02-07 23:05:14.318783306 +0200
@@ -39,11 +39,11 @@
     public static boolean dbg = false;
     private static void pa(String s) { System.err.println(s); }
 
-    float[] floats = new float[80000];
-    int nfloats = 0;
+    public float[] floats = new float[80000];
+    public int nfloats = 0;
 
-    int[] inds = new int[20000];
-    int ninds = 1; // zero is special (the root)
+    public int[] inds = new int[20000];
+    public int ninds = 1; // zero is special (the root)
 
     protected final void addFloats(int n) { nfloats += n; }
     protected final void addInds(int n) { ninds += n; }
diff -rN -u libvob-old/org/nongnu/libvob/lob/lobs/ClipLob.java libvob-new/org/nongnu/libvob/lob/lobs/ClipLob.java
--- libvob-old/org/nongnu/libvob/lob/lobs/ClipLob.java	2006-02-07 23:05:13.436916292 +0200
+++ libvob-new/org/nongnu/libvob/lob/lobs/ClipLob.java	2006-02-07 22:10:35.000000000 +0200
@@ -114,7 +114,8 @@
 	    map.clip(cs);
 	    run_render.run();
 	    map.unclip();
-	} else if(api instanceof org.nongnu.libvob.impl.gl.GLAPI) {
+	} else if(api instanceof org.nongnu.libvob.impl.gl.GLAPI ||
+		api instanceof org.nongnu.libvob.impl.lwjgl.LWJGL_API) {
 	    org.nongnu.libvob.gl.Stencil.drawStenciled(
 		scene,
 		run_put_stencil,
diff -rN -u libvob-old/org/nongnu/libvob/vobs/RectVob.java libvob-new/org/nongnu/libvob/vobs/RectVob.java
--- libvob-old/org/nongnu/libvob/vobs/RectVob.java	2006-02-07 23:05:13.453913729 +0200
+++ libvob-new/org/nongnu/libvob/vobs/RectVob.java	2006-02-07 22:10:36.000000000 +0200
@@ -29,6 +29,8 @@
 package org.nongnu.libvob.vobs;
 import org.nongnu.libvob.*;
 import org.nongnu.libvob.gl.*;
+import org.nongnu.libvob.gl.impl.lwjgl.LWJGLRen;
+import org.nongnu.libvob.impl.gl.GLAPI;
 import org.nongnu.libvob.util.*;
 import java.awt.Color;
 import java.awt.Rectangle;
@@ -134,9 +136,14 @@
 	    float[] tlc = ColorUtil.getRGBColorComponents(tlColor, null);
 	    float[] brc = ColorUtil.getRGBColorComponents(brColor, null);
 
-	    vob = GLRen.createNonFilledRectangle(lineWidth, 
+	    if (GraphicsAPI.getInstance() instanceof GLAPI)
+		vob = GLRen.createNonFilledRectangle(lineWidth, 
 						 tlc[0], tlc[1], tlc[2], 1, 
 						 brc[0], brc[1], brc[2], 1);
+	    else
+		vob = LWJGLRen.createNonFilledRectangle(lineWidth, 
+			 tlc[0], tlc[1], tlc[2], 1, 
+			 brc[0], brc[1], brc[2], 1);
 	}
 
         vs.map.put(vob, coordsys1);
diff -rN -u libvob-old/org/nongnu/libvob/vobs/TextVob.java libvob-new/org/nongnu/libvob/vobs/TextVob.java
--- libvob-old/org/nongnu/libvob/vobs/TextVob.java	2006-02-07 23:05:13.456913276 +0200
+++ libvob-new/org/nongnu/libvob/vobs/TextVob.java	2006-02-07 22:10:36.000000000 +0200
@@ -30,9 +30,12 @@
 import org.nongnu.libvob.impl.awt.*;
 import org.nongnu.libvob.impl.gl.*;
 import org.nongnu.libvob.linebreaking.*;
+import org.nongnu.libvob.Vob.RenderInfo;
 import org.nongnu.libvob.gl.*;
 import org.nongnu.libvob.util.*;
 import org.nongnu.navidoc.util.Obs;
+
+import java.awt.Graphics;
 import java.awt.Rectangle;
 import java.awt.Shape;
 import java.awt.Color;
@@ -189,14 +192,19 @@
     } 
 
     public Vob getPlainRenderableForBenchmarking() {
-	if(ht == null) {
+	if(ht == null && GraphicsAPI.getInstance() instanceof org.nongnu.libvob.impl.gl.GLAPI) {
 	    GLTextStyle gls = (GLTextStyle)style;
 	    ht = GLRen.createText1(
 		    gls.getQuadFont(),
 		    text, 
 		    (baselined ? 1 : gls.getGLFont().getYOffs()),
 		    0);
-	}
+	} else
+	    ht = new AbstractVob(){
+		public void render(Graphics g, boolean fast, RenderInfo info1, RenderInfo info2) {
+		}
+		public int putGL(VobScene vs, int cs) { return 0; }
+	    };
 	return ht;
     }
 
diff -rN -u libvob-old/src/jni/GLRen.template.java libvob-new/src/jni/GLRen.template.java
--- libvob-old/src/jni/GLRen.template.java	2006-02-07 23:05:13.463912221 +0200
+++ libvob-new/src/jni/GLRen.template.java	2006-02-07 22:10:36.000000000 +0200
@@ -27,6 +27,7 @@
 
 package org.nongnu.libvob.gl;
 import org.nongnu.libvob.*;
+import org.nongnu.libvob.gl.impl.lwjgl.LWJGLRen;
 import org.nongnu.libvob.impl.lwjgl.LWJGL_API;
 
 import java.awt.Graphics;
diff -rN -u libvob-old/src/texture/Texture_pipetexture.cxx libvob-new/src/texture/Texture_pipetexture.cxx
--- libvob-old/src/texture/Texture_pipetexture.cxx	2006-02-07 23:05:13.465911919 +0200
+++ libvob-new/src/texture/Texture_pipetexture.cxx	2006-02-07 22:10:36.000000000 +0200
@@ -32,6 +32,7 @@
 #include <stdlib.h>
 #include <stdarg.h>
 #include <iostream>
+#include <errno.h>
 
 using std::cerr;
 using std::string;




More information about the Fencommits mailing list