aboutsummaryrefslogtreecommitdiffstats
path: root/src/classes
diff options
context:
space:
mode:
authorKevin Rushforth <[email protected]>2006-10-11 23:38:14 +0000
committerKevin Rushforth <[email protected]>2006-10-11 23:38:14 +0000
commit1bd8ec8fd2cdb98ef9da7bf9eddfc4855d323a98 (patch)
tree3420a3841f22349fbd3bdc07bda7de921307d050 /src/classes
parent5c3c231be2c4bfdc8a1e2d42e585eaa0da9d394c (diff)
Fixed issue 351: Need a new mechanism to free D3D surface
git-svn-id: https://svn.java.net/svn/j3d-core~svn/trunk@717 ba19aa83-45c5-6ac9-afd3-db810772062c
Diffstat (limited to 'src/classes')
-rw-r--r--src/classes/jogl/javax/media/j3d/JoglPipeline.java11
-rw-r--r--src/classes/share/javax/media/j3d/GraphicsContext3D.java6
-rw-r--r--src/classes/share/javax/media/j3d/ImageComponent2DRetained.java35
-rw-r--r--src/classes/share/javax/media/j3d/ImageComponent3DRetained.java4
-rw-r--r--src/classes/share/javax/media/j3d/NativePipeline.java10
-rw-r--r--src/classes/share/javax/media/j3d/NoopPipeline.java12
-rw-r--r--src/classes/share/javax/media/j3d/Pipeline.java10
7 files changed, 1 insertions, 87 deletions
diff --git a/src/classes/jogl/javax/media/j3d/JoglPipeline.java b/src/classes/jogl/javax/media/j3d/JoglPipeline.java
index 7f7b47b..60364a1 100644
--- a/src/classes/jogl/javax/media/j3d/JoglPipeline.java
+++ b/src/classes/jogl/javax/media/j3d/JoglPipeline.java
@@ -4070,17 +4070,6 @@ class JoglPipeline extends Pipeline {
// ---------------------------------------------------------------------
//
- // ImageComponent2DRetained methods
- //
-
- // free d3d surface referred to by id
- void freeD3DSurface(ImageComponent2DRetained image, int hashId) {
- // Nothing to do
- }
-
- // ---------------------------------------------------------------------
-
- //
// Renderer methods
//
diff --git a/src/classes/share/javax/media/j3d/GraphicsContext3D.java b/src/classes/share/javax/media/j3d/GraphicsContext3D.java
index 8bfd972..9df496b 100644
--- a/src/classes/share/javax/media/j3d/GraphicsContext3D.java
+++ b/src/classes/share/javax/media/j3d/GraphicsContext3D.java
@@ -683,15 +683,9 @@ public class GraphicsContext3D extends Object {
if (this.background != null) {
bg = (BackgroundRetained)this.background.retained;
bg.setInImmCtx(false);
- if (bg.image != null) {
- bg.image.freeSurface();
- }
}
bg = (BackgroundRetained)background.retained;
bg.setInImmCtx(true);
- if (bg.image != null) {
- bg.image.freeSurface();
- }
this.background = background;
}
diff --git a/src/classes/share/javax/media/j3d/ImageComponent2DRetained.java b/src/classes/share/javax/media/j3d/ImageComponent2DRetained.java
index b754b36..4e2d13b 100644
--- a/src/classes/share/javax/media/j3d/ImageComponent2DRetained.java
+++ b/src/classes/share/javax/media/j3d/ImageComponent2DRetained.java
@@ -23,11 +23,7 @@ import java.awt.color.ColorSpace;
class ImageComponent2DRetained extends ImageComponentRetained {
- // used in D3D to map object to surface pointer
- int hashId;
-
ImageComponent2DRetained() {
- hashId = hashCode();
}
/**
@@ -85,8 +81,6 @@ class ImageComponent2DRetained extends ImageComponentRetained {
geomLock.unLock();
if (source.isLive()) {
- freeSurface();
-
// send a IMAGE_CHANGED message in order to
// notify all the users of the change
sendMessage(IMAGE_CHANGED, null);
@@ -164,8 +158,6 @@ class ImageComponent2DRetained extends ImageComponentRetained {
geomLock.unLock();
if (source.isLive()) {
- freeSurface();
-
// send a IMAGE_CHANGED message in order to
// notify all the users of the change
sendMessage(IMAGE_CHANGED, null);
@@ -210,9 +202,6 @@ class ImageComponent2DRetained extends ImageComponentRetained {
if (source.isLive()) {
- // XXXX: check whether this is needed
- freeSurface();
-
// send a SUBIMAGE_CHANGED message in order to
// notify all the users of the change
@@ -310,10 +299,7 @@ class ImageComponent2DRetained extends ImageComponentRetained {
if (source.isLive()) {
- //XXXX: check whether this is needed
- freeSurface();
-
- // send a SUBIMAGE_CHANGED message in order to
+ // send a SUBIMAGE_CHANGED message in order to
// notify all the users of the change
ImageComponentUpdateInfo info;
@@ -361,25 +347,6 @@ class ImageComponent2DRetained extends ImageComponentRetained {
void clearLive(int refCount) {
super.clearLive(refCount);
- if (this.refCount <= 0) {
- freeSurface();
- }
}
- void freeSurface() {
- if (VirtualUniverse.mc.isD3D()) {
- Pipeline.getPipeline().freeD3DSurface(this, hashId);
- }
- }
-
- // TODO KCR ISSUE 121 : REPLACE THIS WITH A WEAK REFERENCE OR OTHER SCHEME
- // Issue 121 : Stop using finalize() to clean up state
- // Use similar approach as in handling ogl Texture resource cleanup.
-// protected void finalize() {
-// System.err.println("finalize: " + this);
-//// // For Pure immediate mode, there is no clearLive so
-//// // surface will free when JVM do GC
-//// freeSurface();
-// }
-
}
diff --git a/src/classes/share/javax/media/j3d/ImageComponent3DRetained.java b/src/classes/share/javax/media/j3d/ImageComponent3DRetained.java
index 468536c..f5e21ad 100644
--- a/src/classes/share/javax/media/j3d/ImageComponent3DRetained.java
+++ b/src/classes/share/javax/media/j3d/ImageComponent3DRetained.java
@@ -76,8 +76,6 @@ class ImageComponent3DRetained extends ImageComponentRetained {
geomLock.unLock();
if (source.isLive()) {
- // freeSurface();
-
// send a IMAGE_CHANGED message in order to
// notify all the users of the change
sendMessage(IMAGE_CHANGED, null);
@@ -150,8 +148,6 @@ class ImageComponent3DRetained extends ImageComponentRetained {
geomLock.unLock();
if (source.isLive()) {
- // freeSurface();
-
// send a IMAGE_CHANGED message in order to
// notify all the users of the change
sendMessage(IMAGE_CHANGED, null);
diff --git a/src/classes/share/javax/media/j3d/NativePipeline.java b/src/classes/share/javax/media/j3d/NativePipeline.java
index 1a3288f..0eeffc9 100644
--- a/src/classes/share/javax/media/j3d/NativePipeline.java
+++ b/src/classes/share/javax/media/j3d/NativePipeline.java
@@ -1767,16 +1767,6 @@ class NativePipeline extends Pipeline {
// ---------------------------------------------------------------------
//
- // ImageComponent2DRetained methods
- //
-
- // free d3d surface referred to by id
- native void freeD3DSurface(ImageComponent2DRetained image, int hashId);
-
-
- // ---------------------------------------------------------------------
-
- //
// Renderer methods
//
diff --git a/src/classes/share/javax/media/j3d/NoopPipeline.java b/src/classes/share/javax/media/j3d/NoopPipeline.java
index 09e7b04..03303d9 100644
--- a/src/classes/share/javax/media/j3d/NoopPipeline.java
+++ b/src/classes/share/javax/media/j3d/NoopPipeline.java
@@ -706,18 +706,6 @@ class NoopPipeline extends Pipeline {
// ---------------------------------------------------------------------
//
- // ImageComponent2DRetained methods
- //
-
- // free d3d surface referred to by id
- void freeD3DSurface(ImageComponent2DRetained image, int hashId) {
- }
-
-
-
- // ---------------------------------------------------------------------
-
- //
// Renderer methods
//
diff --git a/src/classes/share/javax/media/j3d/Pipeline.java b/src/classes/share/javax/media/j3d/Pipeline.java
index d06532a..4df8fdb 100644
--- a/src/classes/share/javax/media/j3d/Pipeline.java
+++ b/src/classes/share/javax/media/j3d/Pipeline.java
@@ -711,16 +711,6 @@ abstract class Pipeline {
// ---------------------------------------------------------------------
//
- // ImageComponent2DRetained methods
- //
-
- // free d3d surface referred to by id
- abstract void freeD3DSurface(ImageComponent2DRetained image, int hashId);
-
-
- // ---------------------------------------------------------------------
-
- //
// J3DBuffer methods
//