Hi Java3D Team:
I am creating an effect of 'Floating Cloud' in the sky with
setTextureTransform(). So at runtime, I set a new translation of a
Transform3D and send it to textureAttributes.
My code is:
//=================
cloudTextureTrans.get(tempVec1);
tempVec1.y += CLOUD_SPEED * interval;
cloudTextureTrans.setTranslation(tempVec1);
Flt.FltScene.skyTextureAtt.setTextureTransform(cloudTextureTrans);
//=================
The above code gave me a WONDERFUL effect of 'Floating Clouds', But,
at same time there is a serious Memory Leak in the calling of
'textureAttributes.setTextureTransform()', It can eats out 128M RAM within
10 Minutes and crashs the OS.
I checked the API documents for setTextureTransform(), Doc say:
===============================
public void setTextureTransform( Transform3D transform )
Sets the texture transform object used to transform texture
coordinates. A copy of the specified Transform3D object is stored in this
TextureAttributes object.
===============================
I am guessing the problem is in 'A copy of the specified Transform3D object
is stored', this means 'a new copy of Transform3D' is created, but how about
the 'old' one? Maybe Java3D did not release it.
By the way, when I run my App with MS DriectX, setTextureTransform() does
not takes any effect, IE, nothing happen, This is another problem for
DriectX.
setTextureTransform() is a really good feature to Java3D App, so I hope you
can check the problem and fix it.
Best Regards
Hongkun Wang
IGSS
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".