void Texture::prepareImpl() { if (isManualLoaded()) return; DataStreamPtr dataStream = ResourceGroupMgr::getSingltonPtr()->openResource(mName, mGroup); mPreparedData = MemoryDataStreamPtr(TITAN_NEW MemoryDataStream(dataStream)); }
//------------------------------------------------------------------------- void HeightmapTerrainPageSource::loadHeightmap(void) { size_t imgSize; // Special-case RAW format if (mIsRaw) { // Image size comes from setting (since RAW is not self-describing) imgSize = mRawSize; // Load data mRawData.setNull(); DataStreamPtr stream = ResourceGroupManager::getSingleton().openResource( mSource, ResourceGroupManager::getSingleton().getWorldResourceGroupName()); mRawData = MemoryDataStreamPtr(OGRE_NEW MemoryDataStream(mSource, stream)); // Validate size size_t numBytes = imgSize * imgSize * mRawBpp; if (mRawData->size() != numBytes) { shutdown(); OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, "RAW size (" + StringConverter::toString(mRawData->size()) + ") does not agree with configuration settings.", "HeightmapTerrainPageSource::loadHeightmap"); } } else { mImage.load(mSource, ResourceGroupManager::getSingleton().getWorldResourceGroupName()); // Must be square (dimensions checked later) if ( mImage.getWidth() != mImage.getHeight()) { shutdown(); OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, "Heightmap must be square", "HeightmapTerrainPageSource::loadHeightmap"); } imgSize = mImage.getWidth(); } //check to make sure it's the expected size if ( imgSize != mPageSize) { shutdown(); String err = "Error: Invalid heightmap size : " + StringConverter::toString( imgSize ) + ". Should be " + StringConverter::toString(mPageSize); OGRE_EXCEPT( Exception::ERR_INVALIDPARAMS, err, "HeightmapTerrainPageSource::loadHeightmap" ); } }