Replacing textures

New Message Reply Date view Thread view Subject view Author view

wrvo (WRVO++at++chevron.com)
Tue, 3 Feb 1998 14:48:58 -0800


For simplicity, lets say that I have a quad defined in a geoset. In an
attached gstate I set a pfTexture. Then as the user moves a slider, the
texture is changed to another one based on the position of the slider (a
very simple animation sequence with an array of textures).

The problem that I'm having is that memory is not being freed somewhere
and I eventually run out of shared memory.
I load the texture using tex->loadFile. There are too many textures to
hold in memory at one time so I have to page them in and out. I have a
cache that maintains a window of textures centered around the current
view position. As a texture goes out of the window of in-memory
textures, it is deleted, while others are added using loadFile on the
other end of the cache. I've checked that the reference count of the
textures is 1 when I delete it and it is, but it does not appear to
actually be deleted. I update the current texture that I'm using by
geoset->setAttr(PFSTATE_TEXTURE,tex(i)), where i is the index in the
array of pfTextures. I don't necessarily want to IdleTexure as this
removes the texture from texture memory and it may be used again if the
user reversed the direction of motion on the slider.

What do I have to do to free the memory for the texture?

Would setLoadImage be better (faster) in this case?

Thanks,

Bill Volz

=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
            Submissions: info-performer++at++sgi.com
        Admin. requests: info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:56:43 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.