mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 18:31:55 -04:00
be more aggressive freeing memory
This commit is contained in:
parent
d353a08dd1
commit
2c9ba8eec4
@ -88,6 +88,8 @@ copy(TextureImage *texture) {
|
||||
|
||||
write(dest_image);
|
||||
}
|
||||
|
||||
texture->release_source_image();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
@ -654,6 +654,8 @@ update_image(bool redo_all) {
|
||||
if (pal->_shadow_color_type != (PNMFileType *)NULL) {
|
||||
_shadow_image.write(_image);
|
||||
}
|
||||
|
||||
release_image();
|
||||
}
|
||||
|
||||
|
||||
@ -771,6 +773,18 @@ get_image() {
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: PaletteImage::release_image
|
||||
// Access: Public
|
||||
// Description: Deallocates the memory allocated by a previous call to
|
||||
// get_image().
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void PaletteImage::
|
||||
release_image() {
|
||||
_image.clear();
|
||||
_got_image = false;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: PaletteImage::remove_image
|
||||
// Access: Private
|
||||
|
@ -66,6 +66,7 @@ private:
|
||||
bool find_hole(int &x, int &y, int x_size, int y_size) const;
|
||||
TexturePlacement *find_overlap(int x, int y, int x_size, int y_size) const;
|
||||
void get_image();
|
||||
void release_image();
|
||||
void remove_image();
|
||||
|
||||
// The ClearedRegion object keeps track of TexturePlacements that
|
||||
|
@ -752,6 +752,22 @@ read_source_image() {
|
||||
return _source_image;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: TextureImage::release_source_image
|
||||
// Access: Public
|
||||
// Description: Frees the memory that was allocated by a previous
|
||||
// call to read_source_image(). The next time
|
||||
// read_source_image() is called, it will have to read
|
||||
// the disk again.
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void TextureImage::
|
||||
release_source_image() {
|
||||
if (_read_source_image) {
|
||||
_source_image.clear();
|
||||
_read_source_image = false;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: TextureImage::set_source_image
|
||||
// Access: Public
|
||||
|
@ -89,6 +89,7 @@ public:
|
||||
void copy_unplaced(bool redo_all);
|
||||
|
||||
const PNMImage &read_source_image();
|
||||
void release_source_image();
|
||||
void set_source_image(const PNMImage &image);
|
||||
void read_header();
|
||||
bool is_newer_than(const Filename &reference_filename);
|
||||
|
Loading…
x
Reference in New Issue
Block a user