Mascot Capsule Texture Freeing

Hello,

I am having some trouble with using Mascot Capsule and freeing textures.

What I have is a viewer that allows me to load in my models and examine them. You can flip through the different models. Each model uses a unique Figure and a unique texture map (128x128). What I am finding is that after loading a few models, I can no longer allocate any more textures. The code works in the emulator … which I know does not mean it should run on the phone.

I use the same FigureLayout and Effect3D when I draw the figure.

– CODE SAMPLE START –

private Figure curr_figure = null;
private Texture curr_texture = null;

void loadModel(int model)
{
curr_figure = null;
curr_texture = null;

// Allocate figure
try
{
curr_figure = new Figure(figure_list[model]);
curr_texture = new Texture(texture_list[model], true);

if (curr_figure != null)
    curr_figure.setTexture(curr_texture);

}
catch (Exception e)
{
}
}

– CODE SAMPLE END –

I ran another test, which just deletes and reloads a texture each frame (from the texture list) to see if there was a problem with just texture loading.

The code snippet is the following:

– CODE SAMPLE START –

test_texture = null;

test_texture = new Texture(texture_list[tid], true);

tid++;

if (tid >= MAX_TEXTURE_IN_LIST)
tid = 0;

– CODE SAMPLE END –

When run, the textures get loaded with no problems. However, if I start to call loadModel (by a key press) then once loadModel starts to fail, I start seeing a null test_texture.

It seems that when you do a curr_figure.setTexture that some reference is being set something occurs that will not allow it to be freed later. If you just do a pure load of a texture and free it this is fine.

It seems that I am probably doing something wrong.

Is there a correct procedure to free Figure and Texture data?

Thanks!

Ben

Wrong Forum.

I know this is confusing. Some of the phone manufacturers rather stupidly called their propriatray 3D extensions to their phone’s Java APIs “Java3D” even though Java3D is a pre-existing registered trademark and J2SE API that has been around for over 5 years.

Try the J2ME forums for more luck.