Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (408)
games submitted by our members
Games in WIP (293)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  (Slick2D) Image destroy necessary?  (Read 684 times)
0 Members and 1 Guest are viewing this topic.
Offline DrewLols

Junior Member


Projects: 1


Noob going through metamorphosis...


« Posted 2012-06-30 02:40:13 »

Quick question.  In Slick2d, when I am done using an image, do I have to call it's destroy method in order for it to be eligible for garbage collection?

Did you know that 90% of statistics are wrong?
Offline Cero
« Reply #1 - Posted 2012-06-30 03:05:13 »

Quick question.  In Slick2d, when I am done using an image, do I have to call it's destroy method in order for it to be eligible for garbage collection?

destroy() removes the texture data from the gpu, has nothing to do with the garbage collection.
image = null would case that (you have to kill all references of course)

if you want to free VRam, you do destroy. When closing the Slick App, all is released anyway.

Offline DrewLols

Junior Member


Projects: 1


Noob going through metamorphosis...


« Reply #2 - Posted 2012-07-02 20:21:13 »

So, lets say that the Image is GC'd.  Will the texture still sit there in VRAM?

Did you know that 90% of statistics are wrong?
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ra4king

JGO Kernel


Medals: 264
Projects: 2


I'm the King!


« Reply #3 - Posted 2012-07-03 03:47:07 »

Yup it will.

@davedes
You should override the finalize() method in Image (and all destroy-able classes) to call destroy().

Offline davedes
« Reply #4 - Posted 2012-07-03 04:35:25 »

I don't think finalize() is the way to go for various reasons:
- It may take a very long time after releasing the object before finalize() gets called.
- It may never be called at all -- therefore it's not a good thing to rely on for VRAM cleanup.
- IMO the control of releasing and reloading data into GPU should be in the hands of the user rather than the GC.
- It may be called from the finalizer thread, which I presume would cause issues with the GL context.

Regarding the OP's question, always destroy/release data (sounds, images) when you no longer need them. Simply setting them to null may make the object eligible for garbage collection, but it won't necessarily unload the data from the GPU.

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Browse for soundtracks for your game!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (123 views)
2013-05-17 21:29:12

alaslipknot (131 views)
2013-05-16 21:24:48

gouessej (161 views)
2013-05-16 00:53:38

gouessej (153 views)
2013-05-16 00:17:58

theagentd (166 views)
2013-05-15 15:01:13

theagentd (151 views)
2013-05-15 15:00:54

StreetDoggy (195 views)
2013-05-14 15:56:26

kutucuk (219 views)
2013-05-12 17:10:36

kutucuk (218 views)
2013-05-12 15:36:09

UnluckyDevil (221 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!
Page created in 0.076 seconds with 20 queries.