|
From: <tre...@us...> - 2007-11-10 23:19:09
|
Revision: 568
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=568&view=rev
Author: trevorolio
Date: 2007-11-10 15:19:14 -0800 (Sat, 10 Nov 2007)
Log Message:
-----------
Removed a couple of server-side texture loads which slipped through the cracks, including all pages! That was a triple whammy because the space simulator fetched and rendered the page contents as well as used memory for the resulting texture. This week I'm very thankful for my profiler, which now indicates that the server is loading no textures into memory.
Modified Paths:
--------------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DPageRenderable.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderer.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/Skin.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java 2007-11-09 01:53:26 UTC (rev 567)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java 2007-11-10 23:19:14 UTC (rev 568)
@@ -34,7 +34,6 @@
this.animations = animations;
ArgumentUtils.assertNotNull(skinMap);
this.skinMap = skinMap;
- ArgumentUtils.assertNotNull(defaultBaseTexture);
this.defaultBaseTexture = defaultBaseTexture;
ArgumentUtils.assertNotNull(baseTextures);
this.baseTextures = baseTextures;
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java 2007-11-09 01:53:26 UTC (rev 567)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java 2007-11-10 23:19:14 UTC (rev 568)
@@ -92,7 +92,7 @@
}
public BufferedImage getBodyTexture(String username, long bodyConfigurationID) {
- if(username == null || username.startsWith(WebConstants.GUEST_COOKIE_PREFIX)){
+ if(!loadAppearances || username == null || username.startsWith(WebConstants.GUEST_COOKIE_PREFIX)){
return null;
}
@@ -168,9 +168,9 @@
String name = entry.getName().substring("animation/".length(), entry.getName().length() - 4);
BvhParser parser = new BvhParser(name, entryStream);
animations.add(parser.parse());
- } else if (entry.getName().equals("texture/body.jpg")) {
+ } else if (loadAppearances && entry.getName().equals("texture/body.jpg")) {
defaultBaseTexture = new J3DBodyData.BaseTexture("Default", ImageIO.read(entryStream));
- } else if (entry.getName().startsWith("texture/") && entry.getName().endsWith(".jpg")) {
+ } else if (loadAppearances && entry.getName().startsWith("texture/") && entry.getName().endsWith(".jpg")) {
String name = entry.getName().substring(8, entry.getName().length() - 4);
J3DBodyData.BaseTexture baseTexture = new J3DBodyData.BaseTexture(name, ImageIO.read(entryStream));
baseTextures.add(baseTexture);
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DPageRenderable.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DPageRenderable.java 2007-11-09 01:53:26 UTC (rev 567)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DPageRenderable.java 2007-11-10 23:19:14 UTC (rev 568)
@@ -45,9 +45,13 @@
private J3DThingRenderable thingRenderable = null;
- public J3DPageRenderable(Page page, J3DThingRenderable thingRenderable) {
+ private boolean loadTextures = true;
+
+ public J3DPageRenderable(Page page, J3DThingRenderable thingRenderable, boolean loadTextures) {
this.page = page;
this.thingRenderable = thingRenderable;
+ this.loadTextures = loadTextures;
+
setCapability(BranchGroup.ALLOW_DETACH);
pageGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
pageGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
@@ -58,10 +62,10 @@
reloadContent();
}
- public ThingRenderable getThingRenderable(){
+ public ThingRenderable getThingRenderable() {
return thingRenderable;
}
-
+
public void cleanup() {
//removeAllChildren();
//pageGroup.removeAllChildren();
@@ -131,6 +135,10 @@
}
private void updateAppearance(Appearance appearance) {
+ if (!loadTextures) {
+ return;
+ }
+
try {
Texture texImage = null;
if (textRenderer != null) {
@@ -163,6 +171,11 @@
}
imageRenderer = new ImageRenderer((int) textureWidth, (int) textureHeight);
}
+
+ if (!loadTextures) {
+ return;
+ }
+
InputStream contentStream = page.getContent();
if (contentStream == null) {
throw new IOException("Null content stream");
@@ -219,7 +232,9 @@
setBackground(new Color(0.9f, 0.9f, 0.9f));
frame.addNotify();
- image = frame.createImage(width, height);
+ if (loadTextures) {
+ image = frame.createImage(width, height);
+ }
}
public void setImage(Image sourceImage) {
@@ -227,6 +242,9 @@
}
public void updateRender() {
+ if (!loadTextures) {
+ return;
+ }
Graphics graphics = image.getGraphics();
graphics.setClip(0, 0, getPreferredSize().width, getPreferredSize().height);
if (sourceImage == null) {
@@ -258,11 +276,16 @@
setBackground(new Color(0.9f, 0.9f, 0.9f));
frame.addNotify();
- image = frame.createImage(width, height);
- addHyperlinkListener(this);
+ if (loadTextures) {
+ image = frame.createImage(width, height);
+ addHyperlinkListener(this);
+ }
}
public void updateRender() {
+ if(!loadTextures){
+ return;
+ }
Graphics graphics = image.getGraphics();
graphics.setClip(0, 0, getPreferredSize().width, getPreferredSize().height);
paintComponent(graphics);
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderer.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderer.java 2007-11-09 01:53:26 UTC (rev 567)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderer.java 2007-11-10 23:19:14 UTC (rev 568)
@@ -264,7 +264,7 @@
Log.error("Tried to add a page to an unknown thing: " + page.getThing().getThingID());
return;
}
- J3DPageRenderable pageRenderable = new J3DPageRenderable(page, thingRenderable);
+ J3DPageRenderable pageRenderable = new J3DPageRenderable(page, thingRenderable, !offScreen);
thingRenderable.addPageRenderable(pageRenderable);
}
@@ -726,7 +726,7 @@
Page[] pages = thing.getPages();
for (int i = 0; i < pages.length; i++) {
- J3DPageRenderable pageRenderable = new J3DPageRenderable(pages[i], renderable);
+ J3DPageRenderable pageRenderable = new J3DPageRenderable(pages[i], renderable, !offScreen);
renderable.addPageRenderable(pageRenderable);
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/Skin.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/Skin.java 2007-11-09 01:53:26 UTC (rev 567)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/Skin.java 2007-11-10 23:19:14 UTC (rev 568)
@@ -68,23 +68,24 @@
this.baseImage = baseImage;
this.morphDeltaMaps = morphDeltaMaps;
this.bodyConfiguration = bodyConfiguration;
-
+
//I don't really care for any of these formats
// LUMINANCE is nice for a film noir effect
- texture = new TextureLoader(baseImage, "RGB5", TextureLoader.BY_REFERENCE, null).getTexture();
- texture.setCapability(Texture.ALLOW_IMAGE_READ);
- texture.getImage(0).setCapability(ImageComponent.ALLOW_SIZE_READ);
- texture.getImage(0).setCapability(ImageComponent.ALLOW_IMAGE_READ);
- texture.getImage(0).setCapability(ImageComponent.ALLOW_IMAGE_WRITE);
+ Appearance appearance = new Appearance();
+ if (baseImage != null) {
+ texture = new TextureLoader(baseImage, "RGB5", TextureLoader.BY_REFERENCE, null).getTexture();
+ texture.setCapability(Texture.ALLOW_IMAGE_READ);
+ texture.getImage(0).setCapability(ImageComponent.ALLOW_SIZE_READ);
+ texture.getImage(0).setCapability(ImageComponent.ALLOW_IMAGE_READ);
+ texture.getImage(0).setCapability(ImageComponent.ALLOW_IMAGE_WRITE);
+ updateTexture();
- updateTexture();
+ TextureAttributes textureAtts = new TextureAttributes();
+ textureAtts.setTextureMode(TextureAttributes.REPLACE);
+ appearance.setTextureAttributes(textureAtts);
+ appearance.setTexture(texture);
+ }
- Appearance appearance = new Appearance();
- TextureAttributes textureAtts = new TextureAttributes();
- textureAtts.setTextureMode(TextureAttributes.REPLACE);
- appearance.setTextureAttributes(textureAtts);
- appearance.setTexture(texture);
-
ColoringAttributes ca = new ColoringAttributes();
ca.setShadeModel(ColoringAttributes.NICEST);
appearance.setColoringAttributes(ca);
@@ -112,10 +113,10 @@
}
- public void setBaseImage(BufferedImage baseImage){
+ public void setBaseImage(BufferedImage baseImage) {
this.baseImage = baseImage;
}
-
+
public void updateTexture() {
if (baseImage == null) {
return;
@@ -127,7 +128,7 @@
public void setGeometry(Geometry geo) {
super.setGeometry(geo);
PickTool.setCapabilities(this, PickTool.INTERSECT_FULL);
-
+
skinMorphUpdater = new SkinMorphUpdater();
skinMorphUpdater.morph();
}
@@ -137,9 +138,9 @@
}
private class SkinMorphUpdater implements GeometryUpdater {
-
+
HashMap lastMorphValues = new HashMap();
-
+
float[] vertices = null;
SkinMorphUpdater() {
@@ -147,18 +148,18 @@
vertices = triArray.getCoordRefFloat();
}
- public void morph(){
+ public void morph() {
((GeometryArray) getGeometry()).updateData(this);
}
-
+
public void updateData(Geometry ignored) {
for (int i = 0; i < morphDeltaMaps.length; i++) {
float setting = bodyConfiguration.getSetting(morphDeltaMaps[i].getName());
if (lastMorphValues.get(morphDeltaMaps[i].getName()) != null) {
- setting -= ((Float)lastMorphValues.remove(morphDeltaMaps[i].getName())).floatValue();
+ setting -= ((Float) lastMorphValues.remove(morphDeltaMaps[i].getName())).floatValue();
}
lastMorphValues.put(morphDeltaMaps[i].getName(), new Float(bodyConfiguration.getSetting(morphDeltaMaps[i].getName())));
-
+
MorphDeltaMap.Range[] ranges = morphDeltaMaps[i].getRanges();
for (int r = 0; r < ranges.length; r++) {
Vector3f[] deltas = ranges[r].getDeltas();
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java 2007-11-09 01:53:26 UTC (rev 567)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java 2007-11-10 23:19:14 UTC (rev 568)
@@ -38,13 +38,17 @@
this.geometry = bodyData.cloneBodyGeometry();
this.morphDeltaMaps = bodyData.getMorphDeltaMaps();
if (customSkin == null) {
- if (bodyConfiguration.getBaseTextureName() == null) {
+ if (bodyConfiguration.getBaseTextureName() == null && bodyData.getDefaultBaseTexture() != null) {
this.baseImage = bodyData.getDefaultBaseTexture().getImage();
} else {
J3DBodyData.BaseTexture baseTexture = bodyData.getBaseTexture(bodyConfiguration.getBaseTextureName());
- if(baseTexture == null){
- System.err.println("Could not find base texture by name: " + bodyConfiguration.getBaseTextureName());
- this.baseImage = bodyData.getDefaultBaseTexture().getImage();
+ if (baseTexture == null) {
+ if (bodyConfiguration.getBaseTextureName() != null) {
+ System.err.println("Could not find base texture by name: " + bodyConfiguration.getBaseTextureName());
+ }
+ if (bodyData.getDefaultBaseTexture() != null) {
+ this.baseImage = bodyData.getDefaultBaseTexture().getImage();
+ }
} else {
this.baseImage = baseTexture.getImage();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|