Work on volume resource loading.

This commit is contained in:
David Williams 2009-08-09 14:37:43 +00:00
parent e5d38b597e
commit 099c5c7fbf
2 changed files with 6 additions and 6 deletions

View File

@ -36,10 +36,10 @@ namespace PolyVox
virtual void onProgressUpdated(float fProgress) = 0;
};
POLYVOXUTIL_API Volume<uint8_t>* loadVolumeRaw(std::istream& stream, VolumeSerializationProgressListener* progressListener = 0);
POLYVOXUTIL_API POLYVOX_SHARED_PTR< Volume<uint8_t> > loadVolumeRaw(std::istream& stream, VolumeSerializationProgressListener* progressListener = 0);
POLYVOXUTIL_API void saveVolumeRaw(std::ostream& stream, Volume<uint8_t>& volume, VolumeSerializationProgressListener* progressListener = 0);
POLYVOXUTIL_API Volume<uint8_t>* loadVolumeRle(std::istream& stream, VolumeSerializationProgressListener* progressListener = 0);
POLYVOXUTIL_API POLYVOX_SHARED_PTR< Volume<uint8_t> > loadVolumeRle(std::istream& stream, VolumeSerializationProgressListener* progressListener = 0);
POLYVOXUTIL_API void saveVolumeRle(std::ostream& stream, Volume<uint8_t>& volume, VolumeSerializationProgressListener* progressListener = 0);
}

View File

@ -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<uint8_t>* loadVolumeRaw(istream& stream, VolumeSerializationProgressListener* progressListener)
POLYVOX_SHARED_PTR< Volume<uint8_t> > 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<uint8_t>* volume = new Volume<uint8_t>(volumeWidth, volumeHeight, volumeDepth);
POLYVOX_SHARED_PTR< Volume<uint8_t> > volume(new Volume<uint8_t>(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<uint8_t>* loadVolumeRle(istream& stream, VolumeSerializationProgressListener* progressListener)
POLYVOX_SHARED_PTR< Volume<uint8_t> > 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<uint8_t>* volume = new Volume<uint8_t>(volumeWidth, volumeHeight, volumeDepth);
POLYVOX_SHARED_PTR< Volume<uint8_t> > volume(new Volume<uint8_t>(volumeWidth, volumeHeight, volumeDepth));
//Read data
bool firstTime = true;