diff --git a/library/PolyVoxUtil/include/Serialization.h b/library/PolyVoxUtil/include/Serialization.h index 27613d4b..6459f96e 100644 --- a/library/PolyVoxUtil/include/Serialization.h +++ b/library/PolyVoxUtil/include/Serialization.h @@ -36,10 +36,10 @@ namespace PolyVox virtual void onProgressUpdated(float fProgress) = 0; }; - POLYVOXUTIL_API Volume* loadVolumeRaw(std::istream& stream, VolumeSerializationProgressListener* progressListener = 0); + POLYVOXUTIL_API POLYVOX_SHARED_PTR< Volume > loadVolumeRaw(std::istream& stream, VolumeSerializationProgressListener* progressListener = 0); POLYVOXUTIL_API void saveVolumeRaw(std::ostream& stream, Volume& volume, VolumeSerializationProgressListener* progressListener = 0); - POLYVOXUTIL_API Volume* loadVolumeRle(std::istream& stream, VolumeSerializationProgressListener* progressListener = 0); + POLYVOXUTIL_API POLYVOX_SHARED_PTR< Volume > loadVolumeRle(std::istream& stream, VolumeSerializationProgressListener* progressListener = 0); POLYVOXUTIL_API void saveVolumeRle(std::ostream& stream, Volume& volume, VolumeSerializationProgressListener* progressListener = 0); } diff --git a/library/PolyVoxUtil/source/Serialization.cpp b/library/PolyVoxUtil/source/Serialization.cpp index 1a0b2d84..8b3d13f3 100644 --- a/library/PolyVoxUtil/source/Serialization.cpp +++ b/library/PolyVoxUtil/source/Serialization.cpp @@ -10,7 +10,7 @@ namespace PolyVox { //Note: we don't do much error handling in here - exceptions will simply be propergated up to the caller. //FIXME - think about pointer ownership issues. Or could return volume by value if the copy constructor is shallow - Volume* loadVolumeRaw(istream& stream, VolumeSerializationProgressListener* progressListener) + POLYVOX_SHARED_PTR< Volume > loadVolumeRaw(istream& stream, VolumeSerializationProgressListener* progressListener) { //Read volume dimensions uint8_t volumeWidthPower = 0; @@ -25,7 +25,7 @@ namespace PolyVox uint16_t volumeDepth = 0x0001 << volumeDepthPower; //FIXME - need to support non cubic volumes - Volume* volume = new Volume(volumeWidth, volumeHeight, volumeDepth); + POLYVOX_SHARED_PTR< Volume > volume(new Volume(volumeWidth, volumeHeight, volumeDepth)); //Read data for(uint16_t z = 0; z < volumeDepth; ++z) @@ -104,7 +104,7 @@ namespace PolyVox //Note: we don't do much error handling in here - exceptions will simply be propergated up to the caller. //FIXME - think about pointer ownership issues. Or could return volume by value if the copy constructor is shallow - Volume* loadVolumeRle(istream& stream, VolumeSerializationProgressListener* progressListener) + POLYVOX_SHARED_PTR< Volume > loadVolumeRle(istream& stream, VolumeSerializationProgressListener* progressListener) { //Read volume dimensions uint8_t volumeWidthPower = 0; @@ -119,7 +119,7 @@ namespace PolyVox uint16_t volumeDepth = 0x0001 << volumeDepthPower; //FIXME - need to support non cubic volumes - Volume* volume = new Volume(volumeWidth, volumeHeight, volumeDepth); + POLYVOX_SHARED_PTR< Volume > volume(new Volume(volumeWidth, volumeHeight, volumeDepth)); //Read data bool firstTime = true;